Microsoft SQL Server  
microsoft
  Платформа 2001  |   Продукты  |   Технологии  |   Примеры внедрения  |   Справочная информация  |   Практикум Microsoft  |


Начало раздела

Microsoft Windows 2000

Microsoft Office 2000

Microsoft SQL Server

Microsoft Exchange Server

Microsoft Visio 2000


© 2000 Корпорация Microsoft. Все права защищены.



Обзор Microsoft SQL Server 7.0

Содержание:

Что такое Microsoft SQL Server 7.0
Редакции Microsoft SQL Server 7.0
Архитектура Microsoft SQL Server
Хранение данных
Процессор запросов
Безопасность
Тиражирование данных
Минимизация ручной настройки
Средства управления
Автоматизация выполнения административных задач
Средства построения хранилищ данных
Microsoft SQL Server Desktop
    

Что такое Microsoft SQL Server 7.0

SQL Server 7.0 - это СУБД, рассчитанная на операционные системы, совместимые с Windows. Эта система позволяет создавать высокомасштабируемые решения, она прекрасно интегрирована с Microsoft Office, имеет значительные усовершенствования в выполнении транзакций, оперативном резервировании и тиражировании, а также новшества в области автонастройки и автоматического выбора конфигурации. SQL Server 7.0 - это самая простая платформа для разработки, создания и использования хранилищ данных, а также управления ими. Это первая реляционная СУБД, снабженная встроенной системой преобразования данных Data Transformation Services, службами OLAP и Microsoft Repository 2.0.

Редакции Microsoft SQL Server 7.0

Microsoft SQL Server 7.0 распространяется в трех основных редакциях: Standard, Enterprise и для Small Business Server.

Стандартная редакция работает на платформах Microsoft Windows Small Business Server и Microsoft Windows NT Server стандартной и корпоративной редакции. Количество поддерживаемых процессоров ограничено 4.

Корпоративная (Enterprise) редакция устанавливается только на Windows NT Enterprise Edition и включает такие дополнительные особенности, как поддержка до 32 процессоров, возможность установки на кластер MSCS и адресация расширенной памяти.

Редакция для Small Business Server имеет ограниченный размер базы данных (10 Гбайт) и не включает OLAP Services. Количество одновременных пользователей в ней ограничено 50.

Пользователи, обладающие лицензией на любую из вышеперечисленных редакций, могут установить настольную редакцию Microsoft SQL Server 7.0. Настольная редакция (Desktop Edition) предназначена для работы на Windows 95/98, Windows NT Workstation, Windows NT Server и Windows NT Enterprise. Несмотря на отсутствие ряда возможностей (например, опережающего чтения (read ahead), полнотекстового поиска и др.), настольная редакция основана на том же 32-разрядном коде, что и остальные версии SQL Server 7.0, и полностью совместима с любыми приложениями для SQL Server 7.0.

Microsoft SQL Server содержит множество утилит, инструментов, программ-мастеров (wizards), всплывающих подсказок и других возможностей, которые позволяют значительно упростить весь цикл работы с сервером, включая его установку, внедрение, управление и использование. SQL Server обеспечивает администраторов полным набором средств для тонкой самонастройки Он также способен эффективно работать на автономных однопользовательских настольных системах, требуя минимума административного вмешательства.

Динамическое самоадминистрирование.

SQL Server 7.0 обладает способностью автоматически переконфигурироваться во время своей работы. Если нагрузка на сервер возрастает, он будет динамически привлекать дополнительные ресурсы (например, память, отведенную серверу как приложению). При снижении нагрузки SQL Server возвращает ресурсы операционной системе. Это также происходит, если в операционной системе запускаются другие приложения. SQL Server обнаруживает дополнительные запросы на виртуальную память и высвобождает часть занятой памяти, чтобы уберечь систему от интенсивных операций обмена. Аналогичным образом происходит работа с дисковыми ресурсами: SQL Server автоматически увеличивает или сжимает файл базы данных при добавлении или удалении записей. Выбор между тем, какие параметры серверной настройки будут определяться динамически, а какие - устанавливаться вручную, зависит от администратора.

Полный набор административных утилит. SQL Server предлагает администраторам баз данных (DBA) следующие графические инструменты управления:

  • SQL Server Enterprise Manager поддерживает администрирование серверов различных типов (Microsoft SQL Server, Microsoft Transaction Server, Microsoft Message Queue Server, Microsoft Internet Information Server, Microsoft SNA Server и т.д.). Из единой консоли администратор имеет возможность управлять всеми серверами в глобальной сети предприятия. SQL Server Enterprise Manager представляет все объекты SQL Server в виде иерархического дерева компонентов.

  • SQL Server Agent используется для автоматизации часто повторяющихся задач или обработки исключительных ситуаций. Он позволяет программировать выполнение задач в определенные моменты времени, а также как реакцию на возникновение какого-то события (alert) без непосредственного участия администратора.

  • SQL Server Profiler - перехватчик событий, генерируемых SQL Server.

  • SQL Server Performance Monitor предназначен для отслеживания динамики изменений параметров SQL Server в форме обычного Windows NT Performance Monitor: в виде графика или отчета, записи в журнал или возникновения ситуации alert, когда измеряемый показатель становится больше или меньше заранее заданной величины.
Мастера. Программы-мастера позволяют решать сложные задачи администрирования, проводя пользователя через по-следовательность экранных форм, на каждой из которых от него требуется выполнить какое-нибудь элементарное действие, например, ответить утвердительно или отрицательно на заданный вопрос. Мастера очень пригодятся при отсутствии у начинающего администратора достаточных навыков работы или при решении трудоемких, но рутинных задач.

Архитектура Microsoft SQL Server

В архитектуре Microsoft SQL Server в первую очередь следует отметить следующие компоненты:

  • система хранения данных;

  • процессор запросов;

  • система безопасности.
Первые два компонента обеспечивают функционирование SQL Server как серверной СУБД, принимая и обрабатывая запросы клиентских приложений. Система обеспечения без-опасности осуществляет авторизацию доступа и контроль прав клиентов.

В состав Microsoft SQL Server также входят компоненты, обеспечивающие:

  • тиражирование (репликацию) данных;
  • администрирование сервера и разработку серверных приложений;
  • автоматизацию выполнения административных задач;
  • построение и использование хранилищ данных;
  • полнотекстовое индексирование;
  • другие возможности.

Ниже рассматриваются основные компоненты SQL Server.

Хранение данных

Принципиально новым в версии SQL Server 7.0 является то, что система хранения данных взаимодействует с процессором запросов и другими подсистемами по интерфейсу OLE DB, то есть является принципиально открытой. Эта открытость обеспечивает базу для дальнейшего развития продукта - например, для появления специализированных процессоров запросов. Кроме того, она дает принципиальную возможность построения различных приложений, использующих систему хранения данных SQL Server как встроенный компонент.

В системе хранения данных SQL Server 7.0 имеется ряд существенных нововведений, которые мы рассмотрим далее.

Динамическое изменение размеров файлов баз данных. В версии 7.0 каждая база данных хранится на двух или более файлах (журнал транзакций всегда ведется в отдельном файле). Размер базы данных и, соответственно, размеры файлов могут меняться динамически. Администратор может указать размер порции приращения и предельный размер файла. Файлы баз данных могут объединяться в группы. При этом, создавая, например, таблицу в базе данных, можно указать, на какой файловой группе она будет создана. Размещая файловые группы на разных физических дисках, вы таким образом можете управлять распределением таблиц по дискам с целью балансирования нагрузки.

Формат страницы. Новый формат единицы дисковой памяти - страницы - отличается в первую очередь размером. Теперь страница занимает 8 Кбайт, что, во-первых, повышает эффективность операций ввода-вывода, а во-вторых, позволяет увеличить максимальный размер символьных типов данных до 8000 байт.

Новая система блокировок. SQL Server 7.0 поддерживает блокировки на следующих уровнях: база данных (режим single user), таблица, страница и запись. Блокировки уровня записи поддерживаются для всех операций с данными, причем как для собственно данных, так и для индексов. Оптимальный уровень блокировки выбирается сервером автоматически (то есть не требует явного указания) и динамически (то есть уровень блокировки может меняться по ходу выполнения запроса). Динамическое управление блокировками позволяет повысить скорость одновременной работы множества пользователей.

Резервное копирование. В версии 7.0 поддерживается три основных вида резервного копирования: копирование всей базы данных, копирование только журнала транзакций и дифференциальное копирование (копирование только измененных страниц). Комбинируя эти три вида, администратор может выбрать оптимальную стратегию резервного копирования. Новый способ выполнения резервного копирования (обозначаемый в промышленных стандартах термином "fuzzy backup") понижает скорость текущей работы пользователей не более чем на 10-20%. На одном и том же носителе можно хранить результаты резервного копирования SQL Server 7.0 вместе с резервными копиями Windows NT.

Процессор запросов

Процессор запросов обеспечивает обработку команд на языке Transact-SQL - одном из диалектов стандартного языка за-просов. К числу наиболее важных новых возможностей, которые обеспечивает процессор запросов, относятся следующие:

Использование более одного индекса на таблицу. В предыдущих версиях оптимизатор запросов мог использовать не более одного индекса на каждую таблицу, участвующую в запросе. Теперь это ограничение снято, и оптимизатор может пользоваться несколькими индексами, например, если условие поиска в запросе задано одновременно по нескольким полям. Над индексами могут осуществляться теоретико-множественные операции, например, объединение или пересечение индексов, что упрощает обработку предикатов фильтрации с операторами or или and, а также может применяться для динамического создания покрывающего индекса.

Новые способы соединения таблиц в запросах (JOIN). Наряду с традиционным алгоритмом разрешения соединения таблиц (JOIN) - вложенным циклом (nested loop), оптимизатор может теперь применять и новые, зачастую более эффективные стратегии - слияние (merge join) и хеширование (hash join). Слияние применяется, когда обе соединяемые таблицы отсортированы по ключу соединения. Хеширование применяется, когда индексы задействовать не удается. Оптимизатор запросов сам определяет наиболее эффективную стратегию для каждого запроса.

Распределенные и гетерогенные запросы. В версии 7.0 процессор запросов обращается за данными к системе хранения (Storage Engine) через интерфейс OLE DB. Через этот же интерфейс он может обращаться за данными и к любым другим OLE DB-совместимым источникам данных - как локальным (находящимся на этом же компьютере), так и удаленным. Таким образом, стандартные операторы SELECT, INSERT, UPDATE и DELETE могут теперь в одном запросе соединять таблицы из разных источников данных. Этими источниками данных могут быть как Microsoft SQL Server, так и другие СУБД, а также нереляционные источники данных, например Exchange Server, Index Server и др. В зависимости от возможностей OLE DB-провайдера возможны три варианта обращения к удаленным данным - только чтение удаленных данных, их изменение и включение изменений в распределенную транзакцию. При этом изменение локальных данных возможно в рамках распределенного запроса в любом случае.

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

Полнотекстовый поиск. SQL Server обеспечивает возможности полнотекстового поиска за счет интеграции с системой полнотекстового индексирования, используемой также в Index Server и Site Server. Взаимодействие с этой системой осуществляется через OLE DB. Управление построением и поддержкой индексов осуществляется из главного средства администрирования SQL Server - SQL Enterprise Manager. Полнотекстовые индексы хранятся за пределами баз данных SQL Server - в специально отведенных файловых каталогах. Обновление индексов осуществляется вручную или по расписанию. Построение индекса возможно по символьным и текстовым полям таблиц. Поиск (SELECT) с использованием полнотекстового индекса осуществляется при использовании двух специальных функций - CONTAINS() и FREETEXT().

Безопасность

SQL Server может авторизовать пользователей двумя путями:

  • На основе собственного списка пользователей (в версии SQL Server 6.5 это называлось "стандартный режим")

  • На основе базы пользователей Windows NT (в версии SQL Server 6.5 это называлось "интегрированный режим")
Если организация использует Windows NT в качестве основной сетевой платформы, то применение авторизации Windows NT, безусловно, более эффективно. Во-первых, пользователи осуществляют однократный вход в сеть и получают доступ ко всем ресурсам, в том числе и к SQL Server. Во-вторых, управление доступом пользователей и групп становится более простым с точки зрения администратора. В-третьих, в этом случае задействуются мощные механизмы секретности Windows NT (устаревание паролей и т.п.). По сравнению с версией 6.5 поддержка режима авторизации Windows NT стала более простой и удобной.

Управление правами пользователей в базах данных также стало более удобным и гибким. Вместо групп пользователей теперь применяются роли. Пользователь может входить в одну или несколько ролей. Роль может включать в себя другие роли. Проявился новый механизм - "роль приложения" (application role), который определяет контекст прав любого пользователя данного приложения, независимо от его прав в базе данных.

В каждой базе данных имеется несколько встроенных ролей, которые могут использоваться администратором. Имеются также встроенные роли на уровне сервера. Если раньше существовала только одна учетная запись - "sa", от лица которой осуществлялись все административные действия, то теперь административные права можно раздавать более аккуратно: например, выделив ответственного за управление учетными записями пользователей, который будет лишен прав на управление файлами и создание баз данных.

Тиражирование данных

Тиражирование данных (репликация) - один из мощных способов организации распределенной обработки данных. При помощи тиражирования можно поддерживать в согласованном состоянии базы данных на разных серверах, соединенных между собой медленными, ненадежными или дорогими каналами связи. В SQL Server тиражирование впервые было реализовано в версии 6.0. Оно было основано на простой метафоре, которая используется и в последующих версиях, - метафоре "Издатель - Подписчик". В версиях 6.х использовались два основных режима - тиражирование транзакций и мгновенных снимков. В версии 7.0 к ним добавилось тиражирование с возможностью обновления на подписчике, а также тиражирование слиянием (Merge Replication). Тиражирование слиянием поддерживает работу узлов распределенной сети, которые большую часть времени никак не соединены друг с другом и работают полностью автономно. При появлении соединения осуществляется слияние баз, в ходе которого разрешаются возможные конфликты и базы приводятся в согласованное состояние. Кроме того, появился механизм анонимной подписки, который может поддерживать массовую подписку через Интернет без необходимости авторизации каждого подписчика.

Минимизация ручной настройки

Значительная часть конфигурационных параметров в версии 7.0 настраивается автоматически и в общем случае не требует вмешательства администратора. Основными такими параметрами являются объем оперативной памяти, выделенной для работы SQL Server, количество обслуживаемых соединений пользователей, количество блокировок и т.д. Учитывая также тот факт, что размеры баз данных теперь тоже меняются автоматически, появляется реальная возможность поддержки серверов, работающих автономно, то есть без постоянного обслуживания оператором.

Средства управления

Администрирование SQL Server осуществляется при помощи развитых графических средств. К ним относятся:

SQL Server Enterprise Manager. Это основное средство администратора. Позволяет создавать базы данных, заводить пользователей, управлять их правами, выполнять резервное копирование и восстановление данных и так далее. SQL Server Enterprise Manager (рис. 1) реализован как модуль расширения (snap-in) нового средства управления серверными продуктами - Microsoft Management Console (MMC). Enterprise Manager также позволяет управлять выполнением административных задач по расписанию и описывать реакцию на события.


Рис. 1. SQL Server Enterprise Manager

Мастера. В SQL Server 7.0 входят 25 мастеров, которые проведут администратора через тот или иной процесс по заданному сценарию для успешного решения стоящей перед ним административной задачи. Программы-мастера обеспечивают, в частности, создание базы данных, индекса, хранимой процедуры; экспорт и импорт данных; конфигурацию тиражирования; создание плана поддержки базы данных; настройку набора индексов и т.д.

Средства разработки. В SQL Server Enterprise Manger входят средства визуального проектирования структур баз данных - таблиц, связей и т.д. Имеются также средства для визуального проектирования представлений (View).

SQL Server Query Analyzer. Используется для разработки и оптимизации запросов. Позволяет просмотреть подробный план выполнения запроса. План отображается в графическом виде при помощи пиктограмм и всплывающих текстовых подсказок. Конструкции языка SQL в тексте запроса выделяются разными цветами на основе синтаксического анализа. Показываются относительные (в процентах) стоимости выполнения этапов, а также отдельных запросов по отношению к общей стоимости пакета. Результаты запроса могут быть представлены в табличной форме с управляемой шириной колонок. Query Analyzer может также выдать рекомендации по построению индексов, оптимизирующих выполнение данного запроса.

SQL Server Profiler. Этот инструмент, пришедший на смену SQL Trace из версии 6.5, позволяет собрать самые подробные данные для всестороннего анализа работы пользователей и приложений. Отслеживается до 50 типов событий, в том числе транзакции, блокировки, исполняемые команды и т.д. Входной поток команд может быть захвачен и сохранен в файле или серверной таблице для дальнейшего анализа. Этот поток также может быть вновь воспроизведен, например, чтобы при тестах имитировать реальную работу пользователей, в том числе на другом сервере.

Index Tuning Wizard. Поток команд, захваченный SQL Server Profiler, так же как и последовательность SQL-операторов, может быть проанализирован при помощи мастера Index Tuning Wizard, который выдаст рекомендации по построению индексов, оптимизирующих выполнение всего потока команд (а не одного запроса, как в SQL Server Query Analyzer). При этом будут выданы оценки выигрыша в производительности.

Автоматизация выполнения административных задач

Автоматизация выполнения административных задач позволяет значительно снизить расходы на поддержку сети серверов в организации. Теперь вы можете создавать многошаговые задания, указывая последовательность выполнения очередных шагов в зависимости от результатов предыдущих. В качестве шагов задания могут выступать, как и прежде, оператор языка T-SQL и внешняя программа или командный файл, а также новый элемент - скрипт на языке Visual Basic Scripting Edition или JavaScript.

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

Средства построения хранилищ данных

Средства построения хранилищ данных, к которым относятся SQL Server OLAP Services, Data Transformation Services, Repository и другие, рассмотрены в статьях "Технологии хранилищ данных" и "Анализ данных в корпоративных системах".

Microsoft SQL Server Desktop

Microsoft SQL Server 7.0 выходит в четырех редакциях: Desktop, Small Business Server, Standard и Enterprise.

Редакция Desktop отдельно не выпускается, а включена в каждую из трех остальных. Она работает как на Windows NT, так и на настольных ОС - Windows 95 и Windows 98. В этой редакции отсутствуют такие возможности, как полнотекстовый индекс, OLAP Services и др. Но в остальном это - полноценный SQL Server, обрабатывающий запросы и выполняющий хранимые процедуры так же, как и его "старшие братья". SQL Server Enterprise Edition работает только на платформе Windows NT Server, Enterprise Edition.

В начало страницы