
- •Вопрос 1. Принципы индексации данных, рекомендации по выбору индексов, операторы языка sql для создания и удаления.
- •Вопрос 2. Организация и использование кластерных индексов.
- •Insert into Student (Фамилия, Имя, Отчество, №зачетки) values (‘Борисова’,’Наталья’,’Петровна’,37)
- •Вопрос 3. Организация и использование некластерных индексов
- •Вопрос 4. Планы выполнения запросов.
- •1 Operator under root – кол-во операторов дереве плана
- •1 Operator: under root – кол-во операторов дереве плана
- •6 Operator(s) under root – кол-во операторов дереве плана
- •Вопрос 6. Оптимизация запросов.
- •Вопрос 7. Абстрактные планы запросов.
- •1. Указание способа доступа
- •2. Указание порядка и способа соединения
- •3. Указание на использ-е рабочих таблиц
- •Вопрос 5. Статистика в базах данных.
- •Вопрос 8. Транзакция в бд. Операторы языка sql для управлении транзакциями.
- •Вопрос 9. Проблемы многопользовательского доступа к данным, их решение с помощью блокировок
- •1) Потеря рез-та обновления:
- •2) Зависимость от незафикс. Рез-тов:
- •3) Несовместный анализ:
- •1) Потеря рез-та обновл.:
- •2) Зависимость от незафикс. Рез-тов:
- •3) Несовместный анализ:
- •Вопрос 10.Уровни изоляции транзакции
- •Вопрос 11. Уровни схемы, и виды блокировок.
- •Вопрос 12. Конфигурирование блокировок, отчёты о блокировках
- •13. Принципы построения распределённых баз данных
- •Вопрос 14. Организация репликации с помощью среды sqlRemote
- •Вопрос 15. Схемы репликации в среде sqlRemote
- •Вопрос 16. Организация репликации c помощью ms sql Server
- •12.Активация публикации:
- •13.Созданиеподписки(наиздат. Впублик. Бд):
- •14. Запуск агентов реплик.(перед запуском след. Заполнить табл. Бд):
Вопрос 11. Уровни схемы, и виды блокировок.
СУБД накладывает блокировки на различные ур-я
1.Блокировка таблицы
2.Блокировка страницы
3.Блокировка строки
Уровень 1 уменьшает параллелизм выполнения транз., но и минимизирует затраты на обслуживание блокировок.
Уровень 3 допускает максимально возможный параллелизм в выполняемой транз., но может приводить к большим накладным расходам на обслуживание блокировок.
СУБД повышает уровень блокировки до 1, если в таблице оказалось заблокировано много строк.
Схемы блокировок (ASE15)
1)Блокировка всех страниц(allpages locking) – блокируются страницы данных и индекса
2)Блокировка страниц данных (datapages locking) – блокируются только страницы данных
3)Блокировка строк данных (datarow locking) – блокируются только строки данных
Схема 1 снижает параллелизм в первую очередь из-за блокировки страниц индекса. На странице индекса может находится 100…200 ключей, блокировка страниц индекса приводит к блокировке соответствующего количества строк. Блокировка удерживается до конца транзакции.
Схема 2 – блокировка страниц д-х до конца транзакции и устан. «защелок» на страницы индекса (защелки удерживатся только на время физич. операции чт/записи).
Схема 3 – блокировка строк до конца транзакции и использование защелок во время физической модификации страницы.
К таблицам со схемами 1 и 2 применяются уровни -1, со схемами 3 – уровни 1 и3.
Сервер по возможности старается использовать блок на уровне 1 и 2, вместе с тем существуют записи которые приводят к блокировке таблицы.
UPDATE Счет
SET Сумма-Сум+1.05
Go
Запрос затрагивает все строки таблицы соответственно целесообразно установить блокировку на всю таблицу в целом.
Виды блокировок:
1.S-блокировки (SHARED) устанавливается на строки asaroot при выполнении SELECT.
2.X-блокировки, опции INSERT, DELETE, UPDATE устанавливают X-блокировок на модификацию таблиц и S-блокировок на таблицы, которые они используют.
UPDATE Зарплата SET Сум=Сум+Сум*0,1
Where ФИО IN (SELECT ФИО from Пилот GROUP BY ФИО HAVING COUNT(Тип)<3)
Go
В табл. Зарплата запрос потребует X-блокировок, а в таблю Пилот – S-блокировок.
3. U-блокировка (UPDATE) использ. для предотвращения тупиков. Типовая Т. вначале считывает данные, затем записывает => может возникать тупик. U-блокировки выставляются в начале выполнения update, delete.
- к страницам и строкам, на кот. устанавливаются U-блокировки, могут применяться S-блокировки, но не X и др. U-блокировки.
- при необходимости U-блокировки повышаются до X-блокировок, после снятия S-блокировок др. транзакции.
4. IS-блокировки (Intent Shared) – блокировка намерения, кот. показ., что в табл. есть S-блокированные строки или страницы, устанавливаются перед запросом S-блок. стр-цы или строки.
5. IX-блок. (Intent Exclusive) – то же самое, что IS, но для X-блокировок.
6. D-блокировки (Demand) – блокировка требования, использ. в ASE15, нет в MSSQL5). Устанавливается на транзакции, кот. не смогли трижды установить X-блок. из-за S-блок. других Т.
Все последующие запросы S-блок. ставятся в очередь после D-блок.
7. SIX-блок. (использ. в MSSQL5, в ASE15 – нет). Это комбинация IS и IX, например, SIX устанавливается на табл., где IX устанавливается на стр., где есть X-блок на строки.
Сущ. также IU – комбинация IS и U.
SIU – S- and IU-; UIX – U- and IX-.
8. Для устранения фантомов используются KR-блок. (Key Range), устанавливаются на диапазоны ключей для предотвращения вставки, изменения, удаления строк (ASE15, MSSQL5).
9. Блокир. схемы устанавливается на время операторов DDL для запроса вып-я опер-ров DHL, для исключения вставки в таблицу во время добавления столбца.
Установлена блокировка Запрещена блокировка |
S- |
U- |
X- |
IS- |
IX- |
S- |
да |
да |
нет |
да |
нет |
U- |
да |
нет |
нет |
да |
нет |
X- |
нет |
нет |
нет |
нет |
нет |
IS- |
да |
да |
нет |
да |
да |
IX- |
нет |
нет |
нет |
да |
да |