div.main {margin-left: 20pt; margin-right: 20pt}
Microsoft SQL Server 6.5
Ряд функциональных
черт и свойств Microsoft SQL Server 6.5, касающихся создания и
администрирования корпоративных баз данных, был рассмотрен в разделе II.2.2.
Там шла речь о выполнении распределенных операций, процедурах публикации и
подписки, работе с хранилищами данных, доступе к базам данных Microsoft SQL
Server через Internet, а также об интеграции с другими продуктами семейства
Microsoft BackOffice.
Преимущества интеграции
с Windows NT
Рост популярности
Windows NT подтолкнул ведущих производителей СУБД к переносу своих продуктов
на эту платформу. Тем не менее, тесная интеграция Microsoft SQL Server с
Windows NT обеспечивает этой СУБД ряд существенных преимуществ Решение
проблемы межплатформенной переносимости оборачивается для многих СУБД
вынужденным дублированием функций операционной системы, что приводит к
“перегрузке” продукта, излишней сложности, отсутствию единого взгляда на
управление, задержке версий и, как следствие, неэффективному использованию
ресурсов.
Разрабатывая SQL
Server, Microsoft опиралась на сервисы ядра операционной системы без риска
утратить переносимость. В результате получилась изящная архитектура с единой
стандартной службой обеспечения безопасности, средствами администрирования,
управлением операциями и другими сервисами. Усовершенствования в Windows NT
тут же отражаются в Microsoft SQL Server.
Уже длительное
время Microsoft SQL Server неизменно остается рекордсменом по критерию
производительность/стоимость. На момент написания данного материала самый
свежий рекорд датируется 14 ноября 1996 г. Аудит по тестам TPC-C зафиксировал
результат 6712.53 tpmC при стоимости $65.16/tpmC. Результат был достигнут на
сервере Digital Prioris 6200 (4 процессора Pentium Pro 200 MHz). Вспомним, что
Microsoft SQL Server был первой СУБД, «взявшей» барьер $100/tpmC, и что с
октября 1996 г. было опубликовано 4 дополнительных результата ниже этой
отметки.
Microsoft SQL
Server поддерживает симметричное мультипроцессирование и использует сервисы
операционной системы для управления памятью, чтением/записью с диска и т.д..
Симметричная серверная архитектура позволяет Microsoft SQL Server
осуществлять:
многопоточность;
асинхронный ввод/вывод;
упреждающее планирование операций;
динамическое выравнивание загрузки
(распределение пользовательских задач между процессорами.
Microsoft SQL Server может
параллельно выполнять такие операции, как:
сканирование данных;
создание и сканирование индексов;
обновление/удаление;
коррекция/восстановление;
ввод/обновление;
упреждающее чтение.
Распределенная среда
управления (Distributed Management Framework)
Интеграция
Microsoft SQL Server c другими продуктами Microsoft неограничена уровнем
операционной системы. Для того, чтобы разработчики могли организовывать
взаимодействие с SQL Server, используя накопленный опыт работы с другими
приложениями Microsoft и адаптировать свои задачи с минимальными затратами
времени и сил, в состав Microsoft SQL Server включена распределенная среда
управления (Distributed Management Framework - DMF). DMF имеет трехуровневую
архитектуру построения. В роли сервера при использовании DMF выступает сам SQL
Server вместе с SQL Executive (средство контроля и планирования сервисов SQL
Server, о котором говорилось в разделе II.2.2). Клиентская часть может быть
представлена, например, приложениями, разработанными средствами семейства
Visual Tools (Visual Basic, Visual FoxPro, Visual C++ и т.д.). Связующим
звеном между ними служат распределенные объекты управления (SQL Distributed
Management Objects - SQL- DMO). В состав DMO входят более 40 объектов
управления Microsoft SQL Server, имеющих свыше 1600 свойств и методов. Можно
создавать свои приложения как OLE Automation серверы и запускать их вместе с
SQL Server.
Язык программирования
Transact-SQL
Характеристики
Transact-SQL отвечают входному уровню стандарта ANSI SQL-92 и Федеральным
Стандартам Обработки Информации (FIPS) Национального института Стандартов и
Технологии (NIST) США. Помимо этого, Transact-SQL уже сейчас содержит в своем
составе достаточное количество черт среднего и высшего уровней стандарта
ANSI-92. К ним, можно отнести, например, наличие прокручиваемых "курсоров",
причем прокрутка может выполняться в обоих направлениях, а позиционирование
может быть как абсолютным, так и относительным. Курсоры позволяют выполнять
модификации таблиц, откуда получены данные, при отсутствии уникального ключа.
Курсоры могут автоматически закрываться при завершении транзакции. Кстати,
внутри транзакции в версии SQL Server 6.5 допускаются операторы DDL. В
Transact-SQL включен классический синтаксис построения односторонних внешних
объединений (left outer join, right outer join), хотя допускается и
неформальный стиль (*=, =*). Кроме этого, поддерживаются join, inner join,
full outer join и cross join. Как отмечалось в предыдущем пункте, из кода
Transact-SQL могут вызоваться объекты OLE Automation, которые отрабатываются
как OLE-расширенные хранимые процедуры.
В Microsoft SQL
Server поддерживаются следующие уровни блокировки (сверху вниз): база данных
(однопользовательский режим), таблица, группа страниц (как правило,
непрерывный кусок из 8 страниц, называемый extension), страница (2К блок
данных или индексов). В версии 6.5 к ним добавился новый уровень- запись (для
операций типа INSERT). Это существенно повышает производительность в тех
нередких ситуациях, когда происходит интенсивное пополнение таблицы, имеющей
кластеризованный индекс по колонке identity или вовсе не индексированной. В
следующей версии Microsoft SQL Server блокировка на уровне записи будет
распространена на остальные виды операций.
Стратегия
Microsoft в плане дальнейшего развития SQL Server состоит в том, чтобы
переложить как можно больше ответственности за блокировку с разработчика на
механизм управления базой данных. Обычно при планировании блокировок
разработчик стоит перед дилеммой. Слишком частая блокировка записей приводит к
перегрузке менеджера блокировок и, как следствие, к падению производительности
системы. С другой стороны, блокировка на более высоком уровне мешает
конкурирующим пользователям получить быстрый доступ к нужной части данных. Для
разрешения этого конфликта Microsoft SQL Server предусматривает динамическую
схему блокировки. Это означает, что сначала транзакция блокирует, например,
страницу. Если появляется другая транзакция, претендующая на какую-то запись
внутри этой страницы, то первая транзакция автоматически уменьшает зону
блокировки до уровня необходимых записей. Нередки ситуации, когда связанные
друг с другом объекты (записи) запираются одной транзакцией. Для разгрузки
менеджера блокировок в Microsoft SQL Server планируется ввести средства
построения смешанных страниц, хранящих внутри себя записи из разных таблиц.
Очевидно, что в этом случае потребуется блокировать только одну данную
страницу, что позволит поднять быстродействие и снизить вероятность
конкуренции.
Масштабируемость
Цена 1Gb жесткого
диска на сегодня составляет около $100, поэтому размеры баз данных растут
невероятно быстро. В то же время каждый пользователь Internet может
рассматриваться как потенциальный клиент. Проблему увеличения числа
пользователей и роста объемов данных, Microsoft SQL Server позволяет решить
без перепрограммирования. Единый 4- процессорный узел позволяет поддерживать
свыше 5000 одновременных пользовательских соединений с Microsoft SQL Server,
хранящим миллиарды записей в массиве около 200 Гигабайт. Это соответствует
более 10 миллионов транзакций в день. Сочетание большего числа более быстрых
процессоров способно в короткие сроки более чем удвоить этот результат.
На первом этапе
расширения планируется довести общий объем базы до 500-1000 Гигабайт при
производительности 5-7 тысяч транзакций в минуту. Второй этап предусматривает
объем данных 1-5 Терабайта при производительности 10 тысяч транзакций в
минуту.
Кластерные
технологии MS SQL Server основаны на механизмах кластеризации Windows NT.
Несмотря на то, что сегодня диапазон масштабируемости простирается от
“комнатных” одномегабайтных баз до объемов в несколько сот гигабайт, Microsoft
планирует, поддерживая и развивая симметричную многопроцессорную архитектуру,
постоянно увеличивать размеры поддерживаемых баз данных, распределяя их
обслуживание между серверами в кластере. Первый этап этой стратегии
предусматривает отказоустойчивую систему на базе кластера из двух серверов,
разделяющих единую дисковую систему. В дальнейшем кластеры будут включать в
себя большее число серверов и перечень выполняемых ими функций
расширится.
|