- •Н.И. Коваленко
- •Коваленко н.И., Банчук г.Г.
- •Коваленко Надежда Ивановна
- •Тема I. Общие сведения о ms sql Server 2000
- •1. Базы данных типа клиент/сервер
- •Система типа клиент/сервер
- •2. История sql Server
- •Основные количественные показатели системы sql – сервер
- •3. Обзор sql Server 2000
- •4. Стандартные объекты sqlServer
- •ТемаIi. Работа с ms sqlServer2000 и его компонентами
- •1. Запуск, приостановка и завершение работы sqlServer
- •2. SqlServerEnterpriseManager
- •3. Программа sqlServerQueryAnalyzer
- •Панель инструментов утилиты Query Analyzer
- •4. Обслуживание баз данных
- •Файлы операционной системы, используемые sql Server 2000:
- •Структура базы данных
- •5. УстановкаMicrosoftSqlServer2000
- •Ограничения инсталляции sql-сервера
- •ТемаIii. Работа с базой данных создание и использование индексов и ключей
- •1. Базы данных и их свойства
- •Описание ролей, используемых для доступа к базе данных и серверу баз данных
- •Дополнительные опции настройки базы данных
- •Настройка параметров доступа к базе данных
- •2. Таблицы базы данных.
- •3. Типы данных, используемые в sql-сервере
- •Текстовые типы данных
- •Типы данных даты и времени
- •Типы данных для хранения больших объемов информации
- •Типы данных специального назначения:
- •4. Основные операции с базами данных
- •5. Восстановление бд (администрированиеSqlServer2000)
- •6. Создание и использование индексов и ключей в системе sql Server.
- •7. Использование ограничений
- •8. Использование диаграмм для разработки структуры базы данных
- •9. Создание представлений (видов)
- •ТемаIv. Правила и создание значения
- •1. Инструменты контроля целостности данных
- •2. Создание правил и стандартных значений
- •ТемаV. Триггеры в системеSql–сервер
- •1. Понятие триггера. Типы триггеров
- •2. Создание триггеров
- •3. Использование триггеров. Виды триггеров
- •ТемаVi. Оптимизация запросов и основы sql
- •1. Оптимизация запросов
- •2. Основные операторы sql в sql Server 2000
- •3. Объединение таблиц в операторе select
- •From titles
- •4. Использование директив group by иHaving
- •5. Оператор insert
- •6. ОператорUpdate
- •7. ОператорDelete
- •8. ОператорCreatetable
- •ТемаVii. Создание и работа с представлениями
- •1. Основные сведения о представлениях
- •2. Создание представлений. Отображение представлений
- •3. Редактирование представлений. Отображение зависимостей представлений. Создание представлений и представлений
- •4. Переименование столбцов представлений. Переименование представлений. Удаление представлений
- •5. Изменение данных посредством представлений. Обновление данных с помощьюSqlServerEnterpriseManager
- •ТемаViii. Создание и использование курсоров
- •1. Понятие курсора
- •2. Выборка данных из курсора
- •3. Операторы и глобальные переменные для работы с курсорами
- •4. Примеры использования курсоров
- •ТемаIx. Использование хранимых процедур
- •1. Достоинства и недостатки хранимых процедур
- •2.Создание хранимой процедуры
- •3. Операторы языка управления программой. Оператор declare
- •4. Операторы goto, begin…end и if…else
- •5. Операторы waitfor, return, while, break и continue
- •6. Операторы print и raiserror
- •7. Использование параметров в хранимых процедурах
- •8. Глобальные переменные. Отладка хранимых процедур
- •Тема X. Транзакции и блокировки
- •1. Определение транзакции. Ограничения для транзакций. Уровни изоляции транзакций
- •2. Базовая информация о блокировках. Типы блокировок
- •3. Создание транзакций и работа с ними. Точки сохранения
- •4.Отображение информации о блокировках. Явное задание блокировки
- •Описание параметров для явного задания блокировок
- •ТемаXi. Система безопасностиSqlServer2000
- •1. Типы безопасности. Создание и управление бюджетами пользователей
- •Стандартные роли сервера
- •Стандартные роли базы данных
- •2. Добавление новых пользователей. Удаление идентификаторов и пользователей
- •3. Создание ролей. Удаление ролей
- •4. Права доступа. Управление правами доступа
- •ТемаXii. Использование распределенных объектов управления.
- •1.Sql-dmo. Назначение, возможности
- •2. Экспорт данных с помощью команды вср
- •3. Использование объектовSql-dmOв хранимых процедурах
- •ТемаXiii. Основные сведения о хранилищах данных
- •1. Хранилища данных. Системы поддержки принятия решений (dss). Интерактивная аналитическая обработка (olap)
- •Сравнение субд и хранилища данных
- •2. Компоненты хранилища данных. Хранилища данных и магазины данных
- •3. Преобразование данных. Метаданные
- •4. Разработка плана хранилища данных
- •Microsoft Repository
- •С помощью мастера dts можно выполнять также простые преобразования данных, сложные преобразования выполняются с помощью dts Designer.
- •ТемаXiv. Использование служб преобразования данных
- •1. Службы преобразования данных (dts).DtSи хранилища данных
- •2. СредствоDtsDataPump
- •3. МастераDts
- •4. ИспользованиеDtsDesigner
- •Тема XV. Службы olap Microsoft sql Server
- •1.OlaPи многомерные данные
- •2. Хранение данных в бдolap
- •3. Оптимизация базы данныхOlap
- •4. Доступ к многомерным данным
Описание параметров для явного задания блокировок
Параметр |
Описание |
UPDLOCK |
Блокирует изменение значений таблиц, но дает возможность другим пользователям считывать информацию. Это состояние помогает предотвратить задержки, мешающие пользователям просматривать данные таблиц в то время, когда вы обновляете их значения. При задании этого параметра пользователи могут просматривать содержимое базы данных, но не могут обновлять заблокированные строки. |
PAGLOCK |
Явно задает SOL Server разделяемые блокировки страниц. Этот параметр можно использовать только если вы задаете для таблицы блокировку TABLOCLKX. |
Параметр NOLOCK дает возможность считывать в запросе "грязные" (dirty) данные.
Параметр HOLDLOCK: выполнение обычной инструкции SELECT для таблицы на время выборки данных вызывает разделяемую блокировку страницы. Разделяемая блокировка не запрещает другим пользователям обновлять записи или пытаться получить эксклюзивную блокировку страницы данных, с которой в этот момент работает инструкция SELECT. Разделяемая блокировка снимается со страницы данных, как только инструкция SELECT начинает выборку следующей страницы. Если из-за необходимости менять направление просмотра результирующего набора (назад и вперед) вы хотите обеспечить целостность данных на все время жизни инструкции SELECT, используйте команду HOLDLOCK. Эта команда заставит SQL Server сохранять разделяемую блокировку до окончания транзакции.
При задании команды TABLOCK в инструкции SELECT на все время выполнения инструкции блокируется вся таблица (или таблицы), указанная в инструкции. Параметр TABLOCKX вызывает монопольную блокировку таблицы на все время действия транзакции, запрещая всем остальным пользователям доступ к таблице до момента окончания транзакции.
В SQL Server 2000 добавлены следующие уровни блокировки:
• ROWLOCK — предписывает использовать блокировку на уровне строки, вместо страничных и табличных;
• READPAST — вместо перевода процесса в состояние ожидания заблокированные записи пропускаются; применяется только к инструкции SELECT на уровне изоляции read commited.
После того как вы начали работать с транзакциями, журнал транзакций может быстро стать вашим смертельным врагом. Через некоторое время, когда вы выполните множество транзакций, некоторые из них останутся открытыми. Вы должны помнить, что при освобождении журнала транзакций его содержимое записывается в дамп, но это касается только завершенных транзакций. При наличии большого числа незавершенных транзакций журнал транзакций освободится незначительно.
С помощью инструкции DBCC OPFNTRAN, можно получить список открытых транзакций и решить проблему.
В качестве примера рассмотрим следующую ситуацию: разработчик открыл транзакцию, выполнил входящие в нее операции и убедился, что код выполнен правильно. Когда выяснилось, что результаты транзакции в базе данных отсутствуют, разработчик решил перезапустить SQL Server. После перезапуска SQL Server восстановил базу данных, но тем не менее данные снова не изменились.
Вы, наверное, уже догадались, в чем дело, — разработчик оставил открытой транзакцию. Когда сервер был перезапущен, он выполнил откат включенных в транзакцию операций, восстанавливая базу данных в том состоянии, в котором она находилась перед началом работы процедуры разработчика. В коде хранимой процедуры не было никаких синтаксических ошибок, отсутствовала только инструкция завершения транзакции COMMIT TRAN.
В случае сомнений лучше лишний раз проверить наличие действующих процессов. Кроме этого убедитесь, что проверены открытые (или действующие) блокировки. Вы можете также избежать многих проблем, если установите небольшую систему обработки ошибок и воспользуетесь внутренней переменной SQL Server @@TRANCOUNT, которая при выходе из хранимой процедуры подтверждает, что связанные с ней транзакции завершены успешно.