(Возврат на основную страницу)
Включение издателей репликации в группы доступности AlwaysOn
Уорвик Радд (Warwick Rudd)
Включение подписчиков репликации в группы доступности AlwaysOn
Уорвик Радд (Warwick Rudd)
Копирование объектов между схемами
Винай Кумар (Vinay Kumar)
Верификация столбцов-кандидатов для ограничений FOREIGN KEY
Чарльз Якобус (Charles Jacobus)
Проверка прав доступа пользователя Guest для группы БД
Microsoft
Расчет сокращения размеров БД при
использовании компресии
Хольгер Шмелинг (Holger Schmeling)
С появлением SQL Server 2008 администраторы получили возможность использовать
сжатие данных. В результате не только сокращается требование места на дисках, но
и существенно уменьшается интенсивность операций ввода\вывода и требования
памяти. Сжатие существует в двух вариантах - на уровне записи и на уровне
страницы (подробное описание технологии можно найти, например здесь
http://blogs.msdn.com/b/sqlserverstorageengine/archive/2007/11/12/types-of-data-compression-in-sql-server-2008.aspx).
Однако, ответить на вопрос о полезности использования сжатия - нелегкое дело.
При анализе применимости нужно учитывать, в том числе, выигрыш от сокращения
объемов хранения. SQL Server Management Studio предлагает использование Data
Compression Wizard, предоставляющего оценку выигрыша в зависимости от выбранного
типа сжатия. Из контекстного меню по щелчку правой клавишей мыши на имени БД
выберите команду Storage/Manage Compression… Выберите в списке тип сжатия (Row
или Page) и щелкните кнопку Calculate.
К сожалению, стандартный инструмент не позволяет получить оценку выигрыша для
группы объектов. Например, если вы хотите оценить, насколько сильно будут сжаты
10 самых больших таблиц в БД, все расчеты придется проделывать по одному за раз.
И тут приходит время воспользоваться процедурой
sp_estimate_data_compression_savings. Процедура также работает с одним объектом
за раз, но мы можем вызвать ее несколько раз.
Кто работает? Использование системных представлений - простой
путь
Адам Маханик (Adam Machanic)
Если вы не следили за моими блогами, то я хочу вкратце дать описание процедуры,
которую я разработал для мониторинга текущей активности в рамках SQL Server:
Работа процедура базируется на использовании системных представлений и получает данные из 15 различных представлений
Процедура изначально разрабатывалась как максимально гибкая. Она позволяет получить не только различные типы данных, но и организацию вывода полей и порядок сортировки выходных результатов
Процедура создавалась с учетом требования вносить минимальную дополнительную нагрузку на сервер и те, кто уже пользовались ею, отмечают, что результат получается менее чем за секунду. Для серверов, находящихся под интенсивной нагрузкой, результаты получаются немного медленнее
Процедура совместима со всеми версиями SQL Server, начиная с SQL Server 2005 RTM. Она требует только, чтобы БД, в контексте, которой исполняется процедура (обычно это master) не имела настройки SQL Server 2000 compatibility mode
Процедура бесплатна для использования, при условии, что ее заголовок остается неизменной. В заголовке дается дополнительная информация о лицензионном использовании
Процедура разрабатывалась более трех лет, моя система контроля версий хранит более 600 ревизий и объем кода составляет более 5 тысяч строк. Это самая сложная и массивная процедура, над которой я когда-либо работал.
sp_who3
Денни Черри (Denny Cherry)
Я написал замену процедуре sp_who2, которую я назвал sp_who3. Процедура помогает
в ситуации, когда необходимо отсыскать медленно исполняющиеся запросы т.к. она
предоставляет много полезной информации за один проход.
Использование:
exec sp_who3
exec sp_who3 active
exec sp_who3 blocked
exec sp_who3 72 /*любой активный SPID*/
При использовании без параметров, процедура возвращает набор, сходный с тем, что
выдает sp_who2.
При указании “active” процедура выдает набор, сходный с выводом от sp_who2
active.
При указании “blocked” процедура выдает тот же набор, что и при использовании
sp_who3 active, но показывает только блокированные и блокирующие процессы.
Использование свойства Identity для разрешения проблем
параллелизма
Аджит Анантрам (Ajit Ananthram)
Недавно, я столкнулся с интересной проблемой параллелизма. База данных, с
которой я работаю, начала страдать от перемежающихся блокировок и связанных с
ними проблем. В результате в приложении, которое использовало эту базу данных в
качестве своего сервера (backend), отмечались периоды ожидания (timeouts).
Чтобы проанализировать сложившуюся ситуацию, я написал сценарий и включил его в
расписание как задание, которое будет выполнено в заданный промежуток времени на
следующий день. Сценарий должен был отслеживать возникновение блокировок в базе
данных, и если блокировка обнаружена, обеспечить запись соответствующих данных в
журнал, реализованный с помощью таблицы. Эти данные включали подпрограмму
SQL-сервера, вызвавшую блокировку, заблокированную подпрограмму SQL-сервера,
предложение в подпрограмме SQL-сервера, которое было заблокировано, и объект
базы данных, который явился источником конфликта.
Создание настраиваемых условий и политик для SQL Server Policy
Based Management средствами T-SQL
Джон Гровер (John Grover)
Задача
В SQL Server встроенные условия и политики являются отличной возможностью,
позволяющей начать следить за вашей средой, но среди них нет аспектов (facets)
для некоторых параметров SQL Server, которые интересуют меня. Как я могу
контролировать свою среду, используя управление на основе политик? Ознакомьтесь
с настоящим материалом, чтобы узнать об этом подробнее.
Решение
Управление на основе политик (Policy Based Management, PBM) характеризует
гибкость, позволяющая написать пользовательские условия, которые могут быть
вычислены везде, где можно написать предложение на языке T-SQL.
Реализованная в SQL Server возможность управления на основе политик позволяет
выбирать из встроенных аспектов, условий и политик, которые являются отличной
отправной точкой для мониторинга инфраструктуры SQL Server, но это всего лишь
отправная точка. Управление средствами PBM предоставляет также возможность
создавать условия, которые будут следить за всем, к чему можно обратиться с
предложением на языке T-SQL. Я исхожу из того, что вы уже потратили некоторое
время на работу с управлением средствами PBM, если же нужен учебник для
начинающих, обратитесь к некоторым из ссылок, предоставленных в конце этого
совета, которые помогут вам сделать первый шаг.