(Возврат на основную страницу)

 

Содержание номера за Февраль 2011 год

SQL Server

Февраль 2011 2 (8)

 

  1. Вопросы и ответы по SQL: сжатие, наращивание и модернизация баз данных
    Пол С. Рэндал (Paul S. Randal)

  2. Применение предложения OUTPUT в версии SQL Server 2008
    Роберт Шелдон (Robert Sheldon)

  3. Распространенные мифы о SQL Server. Часть 4
    Пол С. Рендал (Paul S. Randal)

  4. Отображение более 8000 символов
    Джефф Моден (Jeff Moden)

  5. Как найти «долгоиграющие» транзакции

  6. Получите уведомление при изменении бюджета


Вопросы и ответы по SQL: сжатие, наращивание и модернизация баз данных
Пол С. Рэндал (Paul S. Randal)

 

Базы данных SQL бывают самых разных конфигураций и размеров, а также имеют разнообразнейшие схемы. В этом месяце наш эксперт по SQL помогает справиться со сжатием, наращиванием и модернизацией баз данных.


Применение предложения OUTPUT в версии SQL Server 2008
Роберт Шелдон (Robert Sheldon)

 

В ретроспективе, пожалуй, именно добавление выражения OUTPUT в предложение MERGE обеспечило версии SQL Server 2008 ее самое мощное дополнение к языку SQL. Эта не такая возможность, которую очень легко растолковать, но Боб справляется с этой задачей в присущей ему ясной и краткой манере. В версиях SQL Server 2005 и 2008 в предложения языка манипулирования данными (data manipulation language, DML) можно добавлять выражение OUTPUT. Это выражение возвращает копию данных, которые были вставлены в таблицы или удалены из них. Скопированные данные можно вернуть в табличную переменную, во временную или постоянную таблицу или в то обрабатывающее приложение, откуда вызывается соответствующее DML-предложение. После этого возвращенные данные можно использовать в таких целях, как архивирование, выдача подтверждающих сообщений или для удовлетворения других требований приложения.

Обе версии, SQL Server 2005 и 2008, позволяют использовать выражение OUTPUT в предложениях INSERT, UPDATE или DELETE. В версии SQL Server 2008 это выражение можно также использовать в предложениях MERGE. В этой статье я показываю, как можно использовать выражение OUTPUT в каждом из упомянутых предложений. Используемые в этой статье примеры разрабатывались на локальном экземпляре SQL Server 2008. Мои примеры работают также в версии SQL Server 2005, за исключением тех из них, которые относятся к предложению MERGE.


Распространенные мифы о SQL Server. Часть 4
Пол С. Рендал (Paul S. Randal)

 

Читайте первую, вторую и третью части статьи в журналах за ноябрь, декабрь 2010 года и за январь 2011 года.


Отображение более 8000 символов
Джефф Моден (Jeff Moden)

 

Введение
Временами во время поиска неисправностей или при разработке есть необходимость проверить содержимое переменных с типами данных VARCHAR(MAX) или NVARCHAR(MAX). Это можно сделать только визуальной проверкой данных или средствами особенно длинного динамического SQL.
В любом случае, всеобщая проблема состоит в том, что SSMS отображает только первые 8000 символов переменной или столбца. Я расскажу о том, как быстро обойти это затруднение и увидеть все символы.


Как найти «долгоиграющие» транзакции

 

Не случалось ли вам оставлять незафиксированные транзакции, только для того, чтобы несколько часов спустя обнаружить длинную цепочку блокировок по всему серверу? Или, еще хуже, кто-то из ваших коллег делал нечто подобное? Так вот, теперь это не случится. Я предлагаю вашему вниманию процедуру, которая пошлет сообщение (посредством net send) на ту машину, которая держит открытую транзакцию, и почтовое сообщение вам (администратору баз данных) о том, кто или что держит открытой транзакцию. Сообщение можно также легко отправить и на пейджер. Процедура также фиксирует историю транзакций в таблице open_transactions_history. Просто создайте эту процедуру и включите е выполнение в повторяющееся задание. В зависимости от того, как часто вы будете запускать процедуру, она станет фиксировать транзакции, которые висят с момента последнего запуска процедуры.


Получите уведомление при изменении бюджета

 

Отличная процедура для поиска разработчиков, которые поменяли свои бюджеты в базе данных. Процедура проверяет таблицу sysusers в каждой БД и/или master..syslogins для поиска изменений бюджетов. Процедура предлагает возможность послать уведомление по почте или зафиксировать факт изменения в таблице, или то и другое. Измените команды set в начале процедуры, это позволит сконфигурировать ее по вашему вкусу. Процедура создает все необходимые таблицы. Она принимает в качестве параметра период в днях, за который следует анализировать возможные изменения. Я предлагаю создать регулярно исполняемое задание, чтобы вы фиксировали ежедневные, еженедельные и так далее изменения. Если зафиксировано изменение, и вы используете настройку CreateBackupTable, тогда вы сможете сравнить записи о бюджете до и после изменения, чтобы определить характер изменения. Если хотите создать новую копию резервных таблиц, просто удалите их, и при следующем запуске процедуры они будут созданы заново.

(Возврат на основную страницу)

 

Hosted by uCoz