PC Magazine/RE logo (С) СК Пресс 12/95
PC Magazine, September 26, 1995, p. 37

Microsoft SQL Server 6.0 облегчает управление базами данных

Марк Джоникас


Благодаря наличию высокоскоростной СУБД с тиражирующим сервером в одном пакете с агрессивно низкой ценой система Microsoft SQL Server 6.0 (SQLS) является шагом вперед относительно своего предшественника - версии 4.21. Пакет рассчитан на платформы Intel, MIPS и Alpha, работающие под управлением Microsoft Windows NT, и предусматривает полное использование симметричного многопроцессорного режима, охватывающего до четырех ЦП.

Применямый в системе SQLS язык Transaction SQL соответствует стандартам ANSI 89 и ANSI 92 и содержит такие нововведения, как оператор CASE. В нынешнем виде он предусматривает декларативную ссылочную целостность, хотя для каскадных обновлений или удалений вам все еще понадобятся запускаемые процедуры (triggers).

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

Предоставляется больше параметров для настройки процессора базы данных, в частности функции упреждающего чтения (read-ahead), эскалации блокировок и временной (tempdb) базы данных. Вероятно, повышение производительности, которое мы наблюдали при проведении лабораторных испытаний, объясняется наличием функций упреждающего чтения и перестройкой буферизации данных. При запросе страницы пул программных процессов действует асинхронно, чтобы загрузить ряд последующих страниц. Благодаря этому в системе SQLS поддерживаетс высокий уровень результативных обращений в кэш ("попаданий"), что дает существенный выигрыш при просмотре больших таблиц. Желаемый уровень "попаданий" можно установить вручную, и SQLS будет поддерживать этот уровень путем настройки функции упреждающего чтения.

Низший уровень блокировки в системе SQLS - по-прежнему страница, а не строка, но теперь администратор базы данных может задавать порог, при котором ряд блокировок страниц приведет автоматически к блокировке таблицы. Появилась возможность отводить часть ОЗУ для временной базы данных Tempdb, что существенно ускорит транзакции.

В системе SQLS теперь предусматриваются курсоры прокрутки, и тем самым облегчается процесс программирования систем принятия решений. Кроме того, в ней допускается парараллельно выполнение загрузки и вывода (дампа), поэтому одновременно могут работать несколько задач. Это в значительной мере способствует ускорению резервного копирования баз данных большего масштаба.

СРЕДСТВА УПРАВЛЕНИЯ

Наиболее важной частью системы SQLS являетс инфраструктура распределенного управления - Distributed Management Framework (DMF), состоящая из трех основных компонентов: блока SQL Enterprise Manager (SQL-администратор предприятия), Distributed Management Objects (объекты распределенного управления) и блока SQL Executive (SQL-диспетчер).

SQL Enterprise Manager представляет собой графический инструмент администратора для управлени множеством баз данных SQLS. Пользуясь иерархической схемой, администратор получает возможность настраивать конфигурацию, контролировать, планировать операции, осуществлять резервное копирование и восстановление, управлять средствами защиты, а также производить тиражирование. С помощью этого инструмента можно осуществлять почти все этапы создания базы данных графическими средствами - от задания спецификаций устройств до формирования таблиц и индексов. В результате администратор получает визуальное представление об использовании и наличии ресурсов. Надо, однако, отметить странное упущение, связанное с отсутствием интерфейса группового копирования.

Раздел Distributed Management Objects системы SQLS содержит объекты и свойства для реализаций SQL-функций управления и администрирования, доступ к которым возможен посредством механизма OLE. Для использовани этих объектов служит язык Visual Basic, предоставляющий в распоряжение администратора гибкое средство решени множества задач баз данных с помощью нескольких строк программы.

Третья составная часть, SQL Executive, - это услуга среды Windows NT для выполнения задач, поставленных в результате работы программ SQL Enterprise Manager и Distributed Management Objects.

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

Дистрибутивная база данных формируется в рамках SQL Enterprise Manager путем выбора сервера и использовани команды Install Publishing. Это позволяет формировать дистрибутивную базу данных либо локально, либо в удаленном пункте, что снижает нагрузку на главный сервер. Обращаясь к пункту меню Publishing, администратор определяет, каким базам данных разрешаются публикации и каким серверам разрешаетс принимать тиражируемые данные вместе с планом тиражирования. Данные могут тиражироваться непрерывно или через заданные промежутки (например, по ночам).

Когда сервер выдает запрос на публикацию, он становится абонентом.

Команда push subscription (режим абонента-отправителя), выдаваемая на основном сервере, упрощает управление тиражированием данных в многочисленные пункты. Команда pull subscription (режим абонента-получателя), выдаваемая сервером-получателем, упрощает управление для одного сервера, принимающего тиражируемые данные от многочисленных пунктов.

Основной блок тиражируемых данных называетс параграфом (article). Администратор описывает параграф, выбирая таблицу для публикации, которую можно отредактировать, с тем чтобы тиражировать только столбцы либо только строки. После установления режима абонента администратор может определить, следует ли применить автоматическую или ручную синхронизацию вторичной таблицы.

Интерфейс SQL Enterprise Manager облегчает установление режима тиражирования и управление им, однако для доступа к удаленному пункту и наложени ограничений на таблицу, данные которой предстоит тиражировать, все же приходится вводить несколько добавочных SQL-команд вручную. Проведенная коротка серия тестов при значениях параметров, принимаемых по умолчанию, выявила, что в условиях незагруженной сети строка данных, вставленная на одном сервере, появляетс на другом сервере через 5 с. В настоящее врем тиражирование предусмотрено только между серверами, использующими SQLS 6.0.

ПРОИЗВОДИТЕЛЬНОСТЬ СИСТЕМЫ SQLS 6.0

Мы проводили сравнительные испытания на четырехтабличной базе данных объемом 2,5 Гбайт. Испытания предусматривали смесь из пяти транзакций: небольшого выбора, большого соединения, модификации на месте, вставки и удаления. Меньший вес приписывалс большому соединению и удалению. Эти транзакции мы направляли от станции 1 в течение 10 мин и рассчитывали производительность. Это повторялось на 4, 8, 12 и более станциях (до 60 клиентов). Проведенные испытани (выполненные на машине Compaq ProLiant 4000 с 128-Мбайт ОЗУ и одним, двумя и четырьмя ЦП Pentium/66) подтвердили превосходство системы SQLS 6.0 над системой версии 4.21.

В однопроцессорной конфигурации начальное повышение производительности, достигавшее 67% (по отношению к версии 4.21), сводилось на нет, когда в ходе испытаний ЦП становился "узким местом" при нагрузках более 8 рабочих станций. В случае двух ЦП повышение производительности отмечалось при всех рабочих нагрузках, достигая максимального значения 141 транзакция/с при 12 рабочих станциях - это на 12% выше, чем для версии 4.21. В четырехпроцессорном варианте производительность при тех же рабочих нагрузках достигала максимального значения 172 транзакция/с, т.е. улучшение по отношению к версии 4.21 составило 21%.

Отмечалось и повышение эффективности при расширении ресурсов. При нагрузке в 12 станций переход от одного процессора к двум позволил повысить производительность системы SQLS 6.0 на 61%. Производительность системы версии 4.21 повысилась при переходе к двум процессорам лишь на 42%. Переход от двух процессоров к четырем привел к повышению производительности системы SQLS 6.0 на 22% против 13% для версии 4.21.

Если учесть впечатляющую производительность, удобство управления и режим тиражирующего сервера, то продуктам других поставщиков СУБД будет трудно соперничать с пакетом Microsoft SQL Server 6.0. Система SQLS 6.0, несомненно, будет способствовать внедрению операционной Windows NT на уровне предприятий. Однако серверы баз данных уже не образуют некую обособленную область. Большинство процессоров баз данных можно в настоящее время встретить в средах Unix и универсальных машин. И хотя система SQLS 6.0 способна взаимодействовать с ними посредством шлюза Open Data Services (услуги по открытому доступу к данным), дл более широкого распространения ее средств администрирования и тиражирующего сервера понадобитс установление связи с этими средами.

Microsoft SQL Server 6.0
Цена по каталогу: лицензия на одного пользователя - 149 долл.; для 20 или более пользователей - по 119 долл. на каждого; лицензия на сервер - 999 долл. Требуемые ресурсы: 16-Мбайт ОЗУ, 35 Мбайт на жестком диске, Microsoft Windows NT версии 3.5 или более поздней, накопитель CD-ROM.
Microsoft Corp., Redmond, WA; 800-426-9400, 206-882-8080.