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

Содержание номера за Июнь 2005 год

 

Editorial

Microsoft выпустила SQL 2000 Service Pack 4

Давно ожидаемый пакет исправлений для SQL Server 2000 наконец увидел свет. Его можно скачать отсюда — http://www.microsoft.com/sql/downloads/2000/sp4.asp.

Вот основные нововведения, которые содержит пакет исправлений SQL Server 2000 SP4.

Обратите внимание: 32разрядные приложения SQL Server, включая клиентские приложения, по­прежнему не поддерживаются для рабо­ты в режиме эмуляции WOW64 на процессорах архитектуры IA64. Кроме того, в настоящее время 32­разрядная версия Reporting Services не поддерживается в режиме эмуляции WOW64 на платформах IA64 и x64, на которых исполняется Windows Server 2003 x64 Edition.

Преимущества

Помимо того, что пакет исправлений включает все ранее выпущенные обновления и исправления, он также обеспечивает повышение производительности, защищенности и качества сопровождения.

Производительность

SQL Server 2000 SP4 обеспечивает повышение производительности на 64­разрядных системах с 32 или более процессорами.

Защищенность

SQL Server 2000 SP4 предоставляет:

Сопровождение

Как определить текущую версию SQL Server 2000

Для определения текущей версии компонентов обработки данных SQL Server 2000 следует выполнить одну из приведенных ниже команд:

Затем необходимо найти соответствующую версию среди приведенных в табл. 1.

Табл. 1. Версии SQL Server 2000

Версия SQL Server 2000

@@VERSION

Product Level

SQL Server 2000 без каких­либо пакетов обновлений и исправлений

8.00.194

RTM

SP1

8.00.384

SP1

SP2

8.00.534

SP2

SP3, SP3a
или MSDE 2000 Release A

8.00.760

SP3

SP4

8.00.2039

SP4

 

Если помимо пакетов обновления вы установили дополнительные исправления, то полученный р­езультат может отличаться от приведенного в табл. 1 (например, @@VERSION возвращает 8.00.818 после установки исправления MS03­031 на SQL Server 2000 SP3a).

Новая пользовательская функция NewComb()

Джимми Нильсон (Jimmy Nilsson)

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

Начиная с Windows 2000, идентификаторы GUID (уникальные идентификаторы UNIQUEIDENTIFIER в контексте SQL Server) больше не упорядочиваются так, как раньше (например, в NT4). Каждый вновь созданный GUID является случайным числом, которое более не содержит MACадреса. (Я не собираюсь затрагивать здесь интересный вопрос о том, увеличивает ли это вероятность появления дубликатов, но вы можете поразмышлять об этом.)

Трюки с порядковыми номерами

Том Моро (Tom Moreau)

У меня было искушение добавить под­заголовок «Курсоры не применяются», но я решил, что вы и так догадаетесь об этом. Как вы знаете, множествам не свойственен какойто внутренний поря­док. Этим обуслов­лена некоторая разобщен­ность между основанной на множествах реляционной моделью и порядковыми номерами. В данной статье описано решение без использования курсоров для задачи, которой они, казалось бы, требуются.

Оболочка для xp_sendmail

Даллас Манди (Dallas Monday)

Если вы проводите много времени, разрабатывая и распространяя фрагменты отчетов, предлагаем вам методику автоматизации этого процесса. В этой статье описан способ распространения текстовых файлов, динамических электронных таблиц Excel и даже баз данных Access по электронной почте с помощью xp_sendmail. Звучит несколько прямолинейно, правда?

Все началось вполне невинно, когда я получил запрос на создание фрагмента нашей системы учета времени и затрат. Автор запроса хотел, чтобы этот процесс не требовал его активного участия. Данные надо было извлекать в файл csv (разделяя значения запятыми), а затем по окончании каждого платежного периода отправлять по электронной почте в соответствии со списком рассылки. Я написал пару хранимых процедур.

Пользовательская функция: глобальные константы

Джимми Нильсон (Jimmy Nilsson)

В этой статье обсуждается семейство пользовательских функций, которые можно применять при написании T­SQL для получения функциональных возможностей, аналогичных глобальным константам.

Мне очень нравится T­SQL и его хранимые процедуры, которыми я обычно пользуюсь в своих компонентах доступа к данным. Но при этом я сознаю, что язык T­SQL можно усовершенствовать, особенно в той части, которая касается обработки ошибок и глобальных констант. В этой статье я расскажу об одном способе решить проблемы с константами.

Проблема

Как я уже говорил, языку T­SQL недостает концепции глобальных констант. В нем нет даже понятия локальных констант, но, на мой взгляд, это менее серьезная проблема. В конце концов, нетрудно воспользоваться переменной для имитации локальной константы:

DECLARE @aLocalConstant INTEGER
 SET @aLocalConstant = 42

С этого момента можно обращаться к этой переменной как к константе, что позволяет легче читать и поддерживать код.

Мне хотелось бы пользоваться глобальными константами, чтобы улучшить читабельность кода и сделать его легче в сопровождении. Если сравнить влияние этих видов констант на задачу сопровождения кода, то выяснится, что глобальные константы намного важнее локальных. Речь идет не о замене постоянных величин. Вряд ли в ближайшем будущем изменится значение числа p, а как насчет максимального размера зарплаты, который используется в качестве ограничения в таблице служащих? И что скажете о количестве минут, в течение которых удерживается пессимистическая пользовательская блокировка отсоединенных данных лотов в вашем приложении  для Web­магазина? Уверен, у вас найдется еще пара подходящих примеров.

Дело не только в том, что на поиск всех случаев применения константы уходит много времени, — вносить изменения опасно, потому что можно случайно пропустить одно­два места. Также весьма вероятно, что глобальные константы понадобятся не только в хранимых процедурах, но и в представлениях, триггерах, значениях по умолчанию и ограничениях — и это только начало. Если вы напрямую используете SQL, то это еще одно хорошее место приложения глобальных констант.

Обсудим одно решение, использующее функциональные возможности глобальных констант.

Изменение больших таблиц

Том Моро (Tom Moreau)

Если вам кажется, что добавить несколько столбцов в таблицу не труднее, чем запустить оператор ALTER TABLE, подумайте хорошенько. Когда таблицы становятся большими, а временные окна для их сопровождения остаются маленькими, приходится искать другие подходы.

Друзья, вот стою я перед вами, смиренный, только что прошедший дрессировку человек. Последний год я занимался сопровождением поставляемого производителем компьютеров приложения на базе SQL Server. В многих своих статьях я рассказывал о проблемах, с которыми столкнулся в ходе этой работы. Я жаловался на нормализацию, на тестирование с большими объемами и нагрузкой и часто страстно желал наступления того дня, когда появится новая версия. Так вот, если достаточно долго и громко о чем­то просить, это в конце концов окажется у вашего порога. Читайте продолжение саги о работе с приложениями, поставляемыми производителем техники.

Я знаком со многими администраторами баз данных, которые крайне неохотно выполняют операторы JOIN. Их претензии сводятся к слишком большим накладным расходам, которые замедляют исполнение запросов. К тому же я большой поклонник нормализации.

Представьте себе мое изумление, когда я просматривал сценарий обновления и обнаружил в нем оператор ALTER TABLE для таблицы с 5,5 миллионами строк (занимавшей в нашем тестовом окружении более 4 Гб)! В нем добавлялось несколько столбцов, допускавших NULL, и несколько не допускавших такие значения битовых столбцов, в которых по умолчанию записывался 0. Один только оператор ALTER TABLE выполнялся 4,1 часа на компьютере с четырьмя процессорами и 8 Гб оперативной памяти. И это был лишь один из нескольких подобных операторов в сценарии, общее время выполнения которого составило 25,5 часа. Вдобавок в производственной таблице содержалось более 7 миллионов строк. Даже работая по 24 часа 7 дней в неделю, такое будет трудно «впарить» пользовательскому сообществу.

Новшества T­SQL в SQL Server 2005. Часть 3

Боб Бошмен, Нилс Берглунд, Дэн Салливан (Bob Beauchemin, Niels Berglund, Dan Sullivan)

Помимо изменений, обсуждавшихся в преды­ду­щих частях статьи, в SQL Server 2005 включена новая модель уведомления о событиях, рабо­таю­щая асинхронно, — Event Notifications. Изменению также подверглось использование типов данных для больших значений, и Microsoft внесла дополне­ния в язык TSQL в SQL Server 2005. Обо всем этом мы расскажем в данной части статьи.

Инспектирование соглашений о формировании префиксов индексов

Рон Телмейдж (Ron Talmage)

В этой статье Рон Телмейдж обращается к очень важной теме соглашений об именовании и рассматривает лучшие практические примеры.

Несомненно, индексы относятся к числу важнейших компонентов баз данных. Хорошие индексы не только обеспечивают высокую производительность обработки запросов — они могут также усилить действие ограничений первичного ключа (PK) и уникальности. Хорошо продуманные соглашения о формировании названий индексов помогут улучшить качество базы данных точно так же, как это делают аналогичные соглашения для таблиц, представлений и хранимых процедур баз данных. Здесь вы узнаете о хранимой процедуре, которая поможет вам проинспектировать выполнение соглашения о формировании названий индексов.

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

Hosted by uCoz