(Возврат на основную страницу)
Давно ожидаемый пакет исправлений для SQL Server 2000 наконец увидел свет. Его можно скачать отсюда — http://www.microsoft.com/sql/downloads/2000/sp4.asp.
Вот основные нововведения, которые содержит пакет исправлений SQL Server 2000 SP4.
Включает новую версию MSXML (version 3.0 SP6). После установки SP4 команда OPENXML сможет использовать специализированную версию XML парсера, обратно совместимую с версией MSXML 2.6.
Включает MDAC 2.8 SP1. Это не относится к Windows XP и Windows Server 2003, для которых данный комплект устанавливается при установке пакетов исправлений для операционной системы.
Добавляет поддержку следующих платформ:
Для Microsoft Windows Server 2003 x64 Edition обеспечивает поддержку 32разрядных приложений SQL Server на 64разрядной архитектуре за счет использования эмулятора Windows on Windows (WOW64). Дополнительную информацию по конкретным реализациям поддерживаемых 64разрядных платформ можно получить, перейдя по ссылке http://www.microsoft.com/windowsserver2003/64bit/x64/editions.mspx.
После установки SP4 вы сможете применять 64 разрядную архитектуру процессора, используя 32разрядные приложения SQL Server при работе в среде эмуляции WOW64.
Предлагает более грамотно организованную документацию (описание разделено на четыре самостоятельных документа):
ReadmeSql2k32sp4 — описание Service Pack 4 для Microsoft SQL Server 2000 (32bit);
ReadmeSql2k32asp4 — описание Service Pack 4 для Microsoft SQL Server 2000 Analysis Services;
ReadmeSql2k32desksp4 — описание Service Pack 4 для Microsoft SQL Server 2000 Desktop Engine (MSDE 2000);
ReadmeSql2k64sp4 — описание Service Pack 4 для Microsoft SQL Server 2000 (64bit).
Преимущества
Помимо того, что пакет исправлений включает все ранее выпущенные обновления и исправления, он также обеспечивает повышение производительности, защищенности и качества сопровождения.
Производительность
SQL Server 2000 SP4 обеспечивает повышение производительности на 64разрядных системах с 32 или более процессорами.
Защищенность
SQL Server 2000 SP4 предоставляет:
обновленные, более защищенные инструментальные средства Table Designer, Database Diagrams и Query Designer;
новые элементы реестра, обеспечивающие дополнительные возможности управления защищенностью, метаданными и памятью.
Сопровождение
SQL Server 2000 SP4 предоставляет возможности по откату исправлений (hotfix), которые были установлены после инсталляции SP4 и более поздних версий SQL Server 2000, исполняющегося на Microsoft Windows XP и Windows Server 2003.
Сам SP4 не подлежит откату.
Для выбранных экземпляров сервера можно установить режим передачи ошибок (Error reporting). Режим включается в процессе установки пакета обновлений.
Как определить текущую версию SQL Server 2000
Для определения текущей версии компонентов обработки данных SQL Server 2000 следует выполнить одну из приведенных ниже команд:
SELECT SERVERPROPERTY('ProductLevel');
SELECT @@VERSION;
SELECT SERVERPROPERTY('ProductVersion').
Затем необходимо найти соответствующую версию среди приведенных в табл. 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 |
8.00.760 |
SP3 |
SP4 |
8.00.2039 |
SP4 |
Если помимо пакетов обновления вы установили дополнительные исправления, то полученный результат может отличаться от приведенного в табл. 1 (например, @@VERSION возвращает 8.00.818 после установки исправления MS03031 на SQL Server 2000 SP3a).
В этой статье обсуждается пользовательская функция, которую можно применять для создания гибридного типа данных UNIQUEIDENTIFIER.
Начиная с Windows 2000, идентификаторы GUID (уникальные идентификаторы UNIQUEIDENTIFIER в контексте SQL Server) больше не упорядочиваются так, как раньше (например, в NT4). Каждый вновь созданный GUID является случайным числом, которое более не содержит MACадреса. (Я не собираюсь затрагивать здесь интересный вопрос о том, увеличивает ли это вероятность появления дубликатов, но вы можете поразмышлять об этом.)
У меня было искушение добавить подзаголовок «Курсоры не применяются», но я решил, что вы и так догадаетесь об этом. Как вы знаете, множествам не свойственен какойто внутренний порядок. Этим обусловлена некоторая разобщенность между основанной на множествах реляционной моделью и порядковыми номерами. В данной статье описано решение без использования курсоров для задачи, которой они, казалось бы, требуются.
Если вы проводите много времени, разрабатывая и распространяя фрагменты отчетов, предлагаем вам методику автоматизации этого процесса. В этой статье описан способ распространения текстовых файлов, динамических электронных таблиц Excel и даже баз данных Access по электронной почте с помощью xp_sendmail. Звучит несколько прямолинейно, правда?
Все началось вполне невинно, когда я получил запрос на создание фрагмента нашей системы учета времени и затрат. Автор запроса хотел, чтобы этот процесс не требовал его активного участия. Данные надо было извлекать в файл csv (разделяя значения запятыми), а затем по окончании каждого платежного периода отправлять по электронной почте в соответствии со списком рассылки. Я написал пару хранимых процедур.
В этой статье обсуждается семейство пользовательских функций, которые можно применять при написании TSQL для получения функциональных возможностей, аналогичных глобальным константам.
Мне очень нравится TSQL и его хранимые процедуры, которыми я обычно пользуюсь в своих компонентах доступа к данным. Но при этом я сознаю, что язык TSQL можно усовершенствовать, особенно в той части, которая касается обработки ошибок и глобальных констант. В этой статье я расскажу об одном способе решить проблемы с константами.
Проблема
Как я уже говорил, языку TSQL недостает концепции глобальных констант. В нем нет даже понятия локальных констант, но, на мой взгляд, это менее серьезная проблема. В конце концов, нетрудно воспользоваться переменной для имитации локальной константы:
DECLARE @aLocalConstant INTEGER
SET @aLocalConstant = 42
С этого момента можно обращаться к этой переменной как к константе, что позволяет легче читать и поддерживать код.
Мне хотелось бы пользоваться глобальными константами, чтобы улучшить читабельность кода и сделать его легче в сопровождении. Если сравнить влияние этих видов констант на задачу сопровождения кода, то выяснится, что глобальные константы намного важнее локальных. Речь идет не о замене постоянных величин. Вряд ли в ближайшем будущем изменится значение числа p, а как насчет максимального размера зарплаты, который используется в качестве ограничения в таблице служащих? И что скажете о количестве минут, в течение которых удерживается пессимистическая пользовательская блокировка отсоединенных данных лотов в вашем приложении для Webмагазина? Уверен, у вас найдется еще пара подходящих примеров.
Дело не только в том, что на поиск всех случаев применения константы уходит много времени, — вносить изменения опасно, потому что можно случайно пропустить однодва места. Также весьма вероятно, что глобальные константы понадобятся не только в хранимых процедурах, но и в представлениях, триггерах, значениях по умолчанию и ограничениях — и это только начало. Если вы напрямую используете SQL, то это еще одно хорошее место приложения глобальных констант.
Обсудим одно решение, использующее функциональные возможности глобальных констант.
Если вам кажется, что добавить несколько столбцов в таблицу не труднее, чем запустить оператор ALTER TABLE, подумайте хорошенько. Когда таблицы становятся большими, а временные окна для их сопровождения остаются маленькими, приходится искать другие подходы.
Друзья, вот стою я перед вами, смиренный, только что прошедший дрессировку человек. Последний год я занимался сопровождением поставляемого производителем компьютеров приложения на базе SQL Server. В многих своих статьях я рассказывал о проблемах, с которыми столкнулся в ходе этой работы. Я жаловался на нормализацию, на тестирование с большими объемами и нагрузкой и часто страстно желал наступления того дня, когда появится новая версия. Так вот, если достаточно долго и громко о чемто просить, это в конце концов окажется у вашего порога. Читайте продолжение саги о работе с приложениями, поставляемыми производителем техники.
Я знаком со многими администраторами баз данных, которые крайне неохотно выполняют операторы JOIN. Их претензии сводятся к слишком большим накладным расходам, которые замедляют исполнение запросов. К тому же я большой поклонник нормализации.
Представьте себе мое изумление, когда я просматривал сценарий обновления и обнаружил в нем оператор ALTER TABLE для таблицы с 5,5 миллионами строк (занимавшей в нашем тестовом окружении более 4 Гб)! В нем добавлялось несколько столбцов, допускавших NULL, и несколько не допускавших такие значения битовых столбцов, в которых по умолчанию записывался 0. Один только оператор ALTER TABLE выполнялся 4,1 часа на компьютере с четырьмя процессорами и 8 Гб оперативной памяти. И это был лишь один из нескольких подобных операторов в сценарии, общее время выполнения которого составило 25,5 часа. Вдобавок в производственной таблице содержалось более 7 миллионов строк. Даже работая по 24 часа 7 дней в неделю, такое будет трудно «впарить» пользовательскому сообществу.
Помимо изменений, обсуждавшихся в предыдущих частях статьи, в SQL Server 2005 включена новая модель уведомления о событиях, работающая асинхронно, — Event Notifications. Изменению также подверглось использование типов данных для больших значений, и Microsoft внесла дополнения в язык TSQL в SQL Server 2005. Обо всем этом мы расскажем в данной части статьи.
В этой статье Рон Телмейдж обращается к очень важной теме соглашений об именовании и рассматривает лучшие практические примеры.
Несомненно, индексы относятся к числу важнейших компонентов баз данных. Хорошие индексы не только обеспечивают высокую производительность обработки запросов — они могут также усилить действие ограничений первичного ключа (PK) и уникальности. Хорошо продуманные соглашения о формировании названий индексов помогут улучшить качество базы данных точно так же, как это делают аналогичные соглашения для таблиц, представлений и хранимых процедур баз данных. Здесь вы узнаете о хранимой процедуре, которая поможет вам проинспектировать выполнение соглашения о формировании названий индексов.