On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

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 планирует, поддерживая и развивая симметричную многопроцессорную архитектуру, постоянно увеличивать размеры поддерживаемых баз данных, распределяя их обслуживание между серверами в кластере. Первый этап этой стратегии предусматривает отказоустойчивую систему на базе кластера из двух серверов, разделяющих единую дисковую систему. В дальнейшем кластеры будут включать в себя большее число серверов и перечень выполняемых ими функций расширится.



Литература по SQL Server