Microsoft SQL Server. Эффективная работа Вишневский А. В. 978538800300 Введение Глава 1. Обзор SQL Server 2005 Новые возможности SQL Server 2005 для администратора Масштабируемость Производительность Управляемость Безопасность Надежность Инструментарий SQL Server 2005 для администратора Управляющая консоль Microsoft Интерфейс управляющей консоли Создание пользовательских консолей Создание панелей задач Утилита SQL Server Management Studio Утилита SQL Server Configuration Manager Утилита SQL Server Surface Area Configuration Утилита командной строки sqlcmd Платформа Microsoft SQL Server в сравнении с конкурентами Сравнение с коммерческими СУБД Сравнение с СУБД с открытым кодом Глава 2. Архитектура SQL Server 2005 Архитектура механизма хранения данных Логическая организация данных Экземпляр База данных Схема Таблицы Секционирование таблиц и индексов Хранимые процедуры Триггеры Физическая организация данных Страницы Экстенты Файлы Файловые группы Организация страниц в файле Журналы транзакций Управление памятью и потоками SQL Server 2005 Механизм планирования процессов SQL Server Планировщик потоков SQL Server Пул рабочих потоков Использование механизма волокон Распределение рабочих потоков между процессорами Управление памятью в SQL Server Буферный пул Буфер данных Кэш планов запросов Рабочая область запросов Область списков блокировок Особенности функционирования подсистемы ввода/вывода Защелки Сброс страниц данных на диск Сброс на диск записей журнала транзакций Интервал восстановления Единый механизм кэширования Обработка запросов 18 22 23 23 25 26 27 28 29 30 31 33 37 41 42 43 44 44 44 47 49 49 50 50 51 58 59 64 65 67 69 69 71 72 74 77 81 88 89 90 91 93 93 94 94 96 98 100 100 100 101 102 103 104 105 106 Оптимизатор запросов Обновление статистики Сбор статистики по строковым и вычисляемым значениям Параллельное выполнение запроса Глава 3. Транзакции и управление параллельным доступом Транзакции Режимы транзакций Явные транзакции Неявные транзакции Автоматически фиксируемые транзакции Транзакции уровня пакета Вложенные транзакции Недопустимые в транзакциях операторы Распределенные транзакции Управление параллельным доступом Неоднозначность параллельной обработки транзакций Обеспечение изолированности Методика блокирования Методика версионности Блокировки Уровни блокирования Эскалация блокировок Типы блокировок Совместимость блокировок Мертвые блокировки Версионность в SQL Server 2005 Хранилище версий Уровни изолированности ANS/ISO SQL92 Уровень изолированности READ UNCOMMITED Уровень изолированности READ COMMITED Уровень изолированности REPEATABLE READ Уровень изолированности SERIALIZABLE Уровни изолированности в SQL Server 2005 Уровень изолированности READ COMMITED WITH SNAPSHOT Уровень изолированности SNAPSHOT Выбор уровня изолированности в SQL Server 2005 Глава 4. Развертывание SQL Server 2005 Планирование установки SQL Server 2005 Выбор редакции SQL Server 2005 Требования SQL Server 2005 к аппаратному обеспечению сервера Требования SQL Server 2005 к программному обеспечению, установленному на сервере Создание учетных записей для служб SQL Server Выбор параметров сопоставления Работа с мастером установки SQL Server 2005 Изменение существующей инсталляции SQL Server 2005 Изменение параметров сбора информации о сбоях и использовании функций Переход на SQL Server 2005 с предыдущих версий Планирование перехода с предыдущих версий Использование утилиты SQL Server 2005 Upgrade Advisory Последние шаги перед обновлением Выполнение перехода на SQL Server 2005 с предыдущих версий Переход на SQL Server 2005 путем обновления предыдущих версий Переход на SQL Server 2005 путем переноса баз данных Рекомендации по обновлению отдельных компонентов SQL Server После обновления Обеспечение совместимости с приложениями, разработанными для предыдущих версий Установка пакета обновления SQL Server 2005 Service Pack 2 Подготовка к установке пакета обновления Выполнение установки пакета обновления Удаление пакета обновления Глава 5. Настройка SQL Server 2005 Начальная настройка экземпляра Настройка служб и сетевых библиотек 107 108 110 110 111 111 112 113 116 117 118 119 121 121 123 124 125 125 125 126 127 129 130 134 135 138 138 139 139 140 140 141 141 142 143 144 145 145 146 147 151 153 155 158 168 170 171 172 173 178 178 178 181 186 190 191 192 193 194 197 198 199 200 Настройка функциональности Настройка служб и сетевых протоколов при помощи SQL Server Configuration Manager Запуск экземпляра в однопользовательском режиме Запуск экземпляра в минимальной конфигурации Приостановка экземпляра Настройка параметров u1101 экземпляра SQL Server Настройка сервера при помощи хранимой процедуры sp_configure Параметр allow updates Параметр clr enabled Параметр cross db ownership chaining Параметр default language Параметр max text repl size Параметр nested triggers Параметр remote access Параметр remote admin connections Параметр remote login timeout Параметр remote proc trans Параметр remote query timeout Параметр server trigger recursion Параметр user options Отображение расширенных параметров настройки Параметр ad hoc distributed query Параметры affinity mask и affinity I/O mask Параметр agent xps Параметр awe enabled Параметр blocked process threshold Параметр c2 audit mode Параметр cost threshold for parallelism Параметр cursor threshold Параметр database mail xps Параметр default trace enabled Параметр disallow results from triggers Параметр fill factor Параметр index create memory Параметр in-doubt xact resolution Параметр lightweight pooling Параметр locks Параметр max degree of parallelism Параметры max server memory и min server memory Параметр max worker threads Параметр media retention Параметр min memory per query Параметр network packet size Параметр ole automation procedures Параметр open objects Параметр priority boost Параметр query governor cost limit Параметр query wait Параметр recovery interval Параметр replication xps Параметр scan for startup procs Параметр set working set size Параметр smo and dmo xps Параметр sql mail xps Параметр two digit year cutoff Параметр user connections Параметр web assistant procedures Параметр xp_cmdshell Параметры настройки полнотекстового поиска Настройка параметров сервера при помощи утилиты SQL Server Management Studio Настройка параметров соединения Параметры совместимости со стандартом ANSI SQL-92 Параметр ANSI_DEFAULTS 202 204 209 210 210 211 211 213 213 214 215 215 216 216 217 217 218 218 218 219 221 222 222 223 224 225 226 226 227 228 228 229 229 230 230 231 231 232 232 233 233 234 234 234 235 235 236 236 236 237 237 238 238 238 239 239 240 240 240 242 249 250 250 Параметры ANSI_NULL_DFLT_ON и ANSI_NULL_DFLT_OFF Параметр ANSI_NULLS Параметр ANSI_PADDING Параметр ANSI_WARNINGS Параметры управления транзакциями Параметр IMPLICIT_TRANSACTIONS Параметр REMOTE_PROC_TRANSACTIONS Параметр TRANSACTION ISOLATION LEVEL Параметр XACT_ABORT Параметры управления блокировками Параметр DEADLOCK_PRIORITY Параметр LOCK_TIMEOUT Параметры выполнения запросов Параметр ARITHABORT Параметр ARITHIGNORE Параметр FMTONLY Параметр NOCOUNT Параметр NOEXEC Параметр NUMERIC_ROUNDABORT Параметр PARSEONLY Параметр QUERY_GOVERNOR_COST_LIMIT Параметр ROWCOUNT Параметр TEXTSIZE Параметры представления даты Параметр DATEFORMAT Параметр DATEFIRST Параметры сбора статистики Параметр FORCEPLAN Параметр SHOWPLAN_ALL Параметр SHOWPLAN_TEXT Параметр SHOWPLAN_XML Параметр STATISTICS IO Параметр STATISTICS XML Параметр STATISTICS PROFILE Параметр STATISTICS TIME Прочие параметры Параметр CONCAT_NULL_YELDS_NULL Параметр CURSOR_CLOSE_ON_COMMIT Параметр FIPS_FLAGGER Параметр IDENTITY_INSERT Параметр LANGUAGE Параметр QUOTED_IDENTIFIER Глава 6. Система безопасности SQL Server 2005 Общие вопросы обеспечения безопасности Учетные записи пользователей Группы пользователей Аутентификация пользователей Шифрование Система цифровых сертификатов Субъекты безопасности SQL Server Режимы аутентификации SQL Server Режим аутентификации Windows Смешанный режим аутентификации Пользователи сервера Создание пользователя сервера на основе учетной записи Windows Создание пользователя сервера путем задания пароля Изменение параметров пользователя Удаление пользователя сервера Управление пользователями сервера при помощи SQL Server Management Studio Пользователи базы данных Роли Фиксированные роли сервера Фиксированные роли базы данных 251 251 252 253 253 254 254 255 255 256 256 256 257 257 258 258 259 259 259 260 260 261 261 261 262 262 262 263 263 263 264 264 266 267 267 268 268 269 269 270 270 271 272 274 274 277 279 280 282 284 284 285 285 286 287 288 289 290 290 293 296 296 297 Создание роли Роли приложений Управление ролями при помощи SQL Server Management Studio Иерархия объектов безопасности SQL Server Управление схемами Использование синонимов Разграничение доступа Разграничение доступа к логическим объектам SQL Server Выдача разрешений Запрещение разрешений Отзыв разрешений Управление разрешениями посредством SQL Server ManagementStudio Ограничение доступа к файлам SQL Server Изменение владельца объекта Управление контекстом выполнения Работа с сертификатами в SQL Server 2005 Создание главных ключей базы данных Использование пользовательских цифровых сертификатов Создание сертификата с одновременной генерацией ключа Создание сертификата на базе существующего ключа Отображение пользователя на существующий сертификат Шифрование данных при помощи сертификатов Использование асимметричных ключей Создание асимметричной пары ключей Загрузка пары ключей из файла Отображение пользователей на существующую пару ключей Шифрование данных при помощи асимметричных алгоритмов Содержание Использование симметричных ключей Создание симметричного ключа Создание временного симметричного ключа Шифрование данных при помощи симметричных ключей Получение информации о состоянии системы безопасности из системных представлений каталога Глава 7. Управление базами данных Создание базы данных Определение направленности создаваемой базы данных Системы обработки транзакций Системы поддержки принятия решений Создание базы данных при помощи оператора CREATE Создание базы данных при помощи утилиты SQL Server Management Studio Изменение конфигурации базы данных Установка параметров базы данных Выбор методики обеспечения изолированности транзакций Изменение состояния базы данных Изменение режима доступа пользователей к базе данных Перевод базы данных в режим «только для чтения» Управление доступом к внешним объектам Управление поведением курсоров Управление процессом автоматического обслуживания базы данных Управление режимом выполнения SQL-запросов Выбор модели восстановления Управление механизмами обеспечения целостности данных Управление режимом дополнительного протоколирования Изменение режима параметризации запросов Изменение режима поддержки корреляционных запросов Управление взаимодействием базы данных с компонентом Service Broker Получение информации о базе данных Использование системного представления каталога sys.databases Использование системного представления каталога sys.database_files Использование системного представления каталога sys.filegroups Использование системной хранимой процедуры sp_spaceused Использование оператора DBCC SQLPERF 298 300 301 303 303 305 306 306 309 311 312 312 314 315 316 317 318 318 319 319 320 320 321 321 322 322 323 13 323 324 325 325 326 328 328 329 329 330 332 338 341 343 344 345 346 346 347 347 348 349 350 351 352 352 352 353 353 354 359 362 363 364 Обслуживание базы данных Подсоединение и отсоединение базы данных Проверка целостности базы данных Увеличение базы данных Сжатие базы данных Передача прав владения Удаление базы данных Глава 8. Резервное копирование и восстановление после сбоев Выбор устройства для сохранения резервной копии Накопитель на магнитной ленте Использование дисковых накопителей Определение устройства резервного копирования Использование носителей Наборы носителей Зеркальные наборы носителей Резервное копирование и модели восстановления Модель простого восстановления Модель восстановления без учета массовых изменений Модель полного восстановления Типы резервного копирования Полная копия базы данных Разностная копия данных Копия журнала транзакций Резервное копирование файлов и групп файлов Частичные резервные копии Дублирующая резервная копия Создание резервных копий Выбор стратегии резервного копирования Выполнение резервного копирования Инструкции оператора BACKUP, используемые для резервного копирования журнала транзакций Отслеживание контрольных сумм страниц Примеры использования оператора BACKUP Создание резервной копии при помощи утилиты SQL Server Management Studio Восстановление данных из резервной копии Описание механизма восстановления системы Выбор стратегии восстановления базы данных Восстановление работоспособности сервера баз данных в аварийных ситуациях Выполнение загрузки резервных копий Содержание Инструкции оператора RESTORE Возвращение базы данных в состояние на определенный момент времени Восстановление отдельных страниц Примеры восстановления системы с использованием резервных копий Восстановление данных при помощи утилиты SQL Server Management Studio Восстановление системных баз данных Восстановление с использованием имеющейся резервной копии Перестроение системной базы данных master Глава 9. Автоматизация выполнения административных задач Служба SQLServerAgent Настройка службы SQLServerAgent Настройка журнала событий Управление доступом к SQL Server Agent Управление посредниками SQL Server Agent Определение полномочий Создание посредника Задания Создание заданий Создание отдельных шагов задания Создание расписания задания Многосерверные задания Настройка главного сервера Настройка сервера назначения Создание заданий средствами Transact-SQL 364 365 367 370 371 374 375 376 376 377 377 378 380 381 383 384 385 386 386 387 387 388 389 390 391 392 392 393 395 399 400 401 403 407 407 408 409 411 15 413 414 415 417 419 422 422 423 425 426 427 433 435 435 436 436 438 439 440 444 447 448 450 450 Создание задания Создание отдельных шагов задания Создание расписаний Операторы Создание операторов Оператор «последней надежды» Оповещения Создание оповещений при помощи утилиты SQL Server Management Studio Создание оповещений, направленных на контроль Производительности Создание оповещений, направленных на контроль событий Определение реакции системы на активизацию оповещения Создание оповещений средствами Transact-SQL Приложение. Основы Transact-SQL Правила именования объектов Видимость идентификаторов Выражения Операнды Значение NULL Литералы Функции Переменные Столбцы Запросы Конструкции Transact-SQL Операции Унарные операции Операция присвоения Арифметические операции Строковые операции Операции сравнения Логические операции Битовые операции Типы данных Числовые типы данных Целочисленные типы данных Точные типы данных Приблизительные типы данных Числовые денежные типы данных Типы данных для работы с датами Тип данных datetime Тип данных smalldatetime Бинарные типы данных Тип данных binary Тип данных varbinary Тип данных varbinary(max) Тип данных image Строковые типы данных Тип данных char Тип данных nchar Тип данных varchar Тип данных varchar(max) Тип данных nvarchar Тип данных nvarchar(max) Текстовые типы данных Тип данных text Тип данных ntext Специальные типы данных Тип данных rowversion Тип данных uniqueidentifier Тип данных sql_variant Тип данных table Тип данных cursor Тип данных xml 451 453 457 461 462 465 466 467 467 469 470 472 475 476 477 478 479 479 479 480 480 480 480 481 481 482 482 482 483 483 484 492 492 494 494 495 497 498 499 501 501 501 502 502 502 503 504 504 505 505 506 506 507 507 507 507 508 508 509 509 509 510 511 Явное преобразование типов данных Пользовательские типы данных Пользовательские типы данных, базирующиеся на встроенных типах Пользовательские типы данных CLR Функции Детерминизм функций Пользовательские функции Создание функции, возвращающей скалярное значение Создание функции, возвращающей результат выполнения запроса Создание функции, возвращающей значение переменной типа table Получение информации о пользовательской функции Конструкции Transact-SQL Использование комментариев Пакеты Команда GO Команда USE Общие табличные выражения Конструкция BEGIN…END Конструкция IF…ELSE Конструкция CASE…END Конструкция WHILE…BREAK…CONTINUE Обработка ошибок Алфавитный указатель 511 514 514 514 515 516 517 517 519 520 520 521 521 522 523 523 524 525 526 527 530 532 535