- •Оглавление
- •Занятие 1. Знакомство с sql Server 2000
- •Что такое sql Server 2000
- •Базы данных
- •Реляционные базы данных
- •Возможности sql Server 2000
- •Масштабируемость
- •Хранилища данных
- •Редакции sql Server 2000
- •Занятие 2. Компоненты sql Server 2000
- •Механизм реляционных баз данных
- •Компоненты sol Server 2000
- •Обзор Microsoft sql Server
- •Репликация
- •Инструменты sql Server 2000
- •Инструменты командной строки
- •Инструменты с графическим интерфейсом
- •Утилита Client Network
- •Утилита Server Network
- •Встроенные мастера sql Server 2000
- •Занятие 3. Архитектура базы данных
- •Логические компоненты базы данных
- •Физическая структура базы данных
- •Страницы и экстенты
- •Страница данных Microsoft sql Server
- •Файлы и группы файлов баз данных
- •Распределение и повторное использование памяти
- •Структура таблиц и индексов
- •Структура журнала транзакций
- •Архитектура механизма реляционных баз данных.
- •Протокол tds
- •Архитектура обработчика запросов
- •Архитектура памяти
- •Архитектура ввода-вывода
- •Архитектура полнотекстовых запросов
- •Организация транзакций
- •Принципы администрирования
- •Инфраструктура распределенного управления sql
- •Графические инструменты
- •Резервное копирование и восстановление
- •Импорт/экспорт данных
- •Проверка целостности данных
- •Принципы репликации
- •Хранилища данных и оперативная аналитическая обработка (olap)
- •Oltp-системы
- •Olap-системы
- •Архитектура разработки приложений
- •Язык баз данных
Архитектура обработчика запросов
Операторы SQL — единственный вид команд, которые приложения посылают SQL Server 2000. Вся работа, выполняемая экземпляром SQL Server, является результатом обработки им SQL-операторов {получение, интерпретация и непосредственно исполнение). SQL Server 2000 исполняет операторы SQL с помощью одного из следующих процессов:
-
обработки одиночного оператора SQL;
-
пакетной обработки;
-
исполнения хранимой процедуры или триггера;
-
кэширования и повторного использования плана исполнения;
-
параллельной обработки запросов.
Архитектура памяти
SQL Server 2000 динамически выделяет и освобождает память по мере необходимости. Как правило, администратору не приходится указывать, сколько памяти надо выделить для SQL Server, хотя такая возможность все равно предусмотрена и в некоторых средах она бывает необходима. При работе нескольких экземпляров SQL Server на одном компьютере каждый экземпляр может динамически выделять и освобождать память в соответствии со своей загруженностью.
SQL Server 2000 Enterprise Edition поддерживает использование Windows 2000 AWE (Address Windowing Extensions), что позволяет экземплярам, работающим под управлением Windows 2000 Advanced Server, адресовать приблизительно 8 Гб памяти, а работающим под управлением Windows 2000 Data Center — приблизительно 64 Гб. Однако каждый экземпляр, использующий эту дополнительную память, должен статически выделять необходимую память.
Архитектура ввода-вывода
Главным назначением базы данных является хранение и поиск данных, поэтому выполнение многочисленных дисковых операций чтения/записи является одним из неотъемлемых атрибутов механизма баз данных. Дисковые операции ввода-вывода потребляют большой объем ресурсов, а их выполнение занимает относительного много времени. Значительная часть логики ПО реляционных СУБД служит для повышения эффективности операций ввода-вывода.
SQL Server 2000 выделяет значительную часть своей виртуальной памяти под кэш-буфер и использует этот кэш для уменьшения числа операций физического ввода-вывода. У каждого экземпляра SQL Server 2000 есть собственный кэш-буфер. Данные считываются из дисковых файлов базы данных в кэш-буфер. Несколько логических операций чтения можно выполнить и без многократного физического считывания данных. Данные остаются в кэше, пока в течение определенного времени на них нет ссылок или не понадобится свободная память буфера для считывания следующей порции данных. Они записываются на диск только после модификации. Данные могут быть многократно модифицированы в результате логических операций записи, прежде чем в результате физической операции записи они, обновленные, будут записаны на диск.
Ввод-вывод, осуществляемый экземпляром SQL Server, подразделяется на логический и физический. Логическое чтение происходит каждый раз, когда механизм баз данных запрашивает страницу из кэш-буфера. Если в настоящий момент страница отсутствует в кэш-буфере, выполняется физическое чтение, чтобы прочитать страницу в кэш-буфер.
Если страница в данный момент находится в кэше, физическая операция чтения не выполняется — кэш-буфер использует ту страницу, которая уже хранится в памяти. При модификации данных страницы, которая находится в памяти, происходит логическая операция записи. При записи страницы на диск выполняется физическая операция записи.
Страница может оставаться в памяти достаточно долго; так, перед физической записью ее на диск иногда выполняется несколько логических операций записи.