Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Izmenennye_Lektsii_po_RISu.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
601 Кб
Скачать
☆

Уровни изоляции данных при параллельном чтении.

DIRTY READ(грязное чтение) – игнорируются любые замки.

COMMITED READ(достоверное чтение) – данные, на которых стоит исключительный замок не читаются, в противном случае читаются, но разделяемый замок не ставится.

CURSOR STABILITY(стабильное чтение) – ставятся разделяемые замки на кортежи. Кортеж становится доступным.

REPEATABLE READ(повторяемое чтение) – аналогично “стабильному чтению”, но ставятся разделительные замки на все прочитанные курсором кортежи. Если, хотя бы на один нельзя поставить замок, то чтение завершается с ошибкой.

Особенности при управлении доступом

  1. Управлять доступом параллельно работающих пользователей м. только внутри транзакции

  2. Уровни изоляции CURSOR STABILITY (стабильное чтение) и REPEATABLE READ (повторяемое чтение) временно ограничивают права пользователей на модификацию читаемых данных

  3. Для защиты модифицируемых данных от параллельного изменения другими приложениями необходимо прочитать их с помощью блокирующего курсора.

Управление доступом к блокированным данным (informix)

Можно задать один из двух режимов обработки ситуаций:

  1. SET LOCK MODE TO WAIT число_секунд

Ждать фиксированное число секунд, по истечении которого (если доступ отсутствует) выдать сообщение об ошибке

  1. SET LOCK MODE TO NOT WAIT

Не ждать, завершить операцию доступа. При отсутствии возможности доступа СУБД выдает сообщение об ошибке, которое необходимо перехватить приложение и обработать: WHENEWER ERROR имя_процедуры_обработки_ошибки

Оптимизатор sql-запросов – компонента субд

Задача оптимизатора – повышение эффективности запроса.

Алгоритм оптимизации:

  1. Определяются планы запросов.

  2. Оценивается объем работы каждого плана (подсчитывается число анализируемых картежей, число прочитанных дисковых страниц, число сетевых транзакций).

  3. Выбирается план с наименьшей оценкой объема работ.

  4. План передается серверу для исполнения.

Алгоритм оптимизации включает в себя как аналитические, так и эвристические процедуры, поэтому оценки имеют вероятностный характер.

Уровень оптимизации устанавливается оператором:

SET OPTIMIZATION {HIGHT|LOW} – высокий или низкий.

Низкий уровень включает маловероятные стратегии соединения и поэтому сокращает время и ресурсы памяти при построении оптимального плана. Однако оптимальная стратегия соединения м.б. исключена.

Высокий уровень (действует по умолчанию) исследует всевозможные стратегии соединения и поэтому вызывает большие затраты времени и ресурсов памяти при построении оптимального плана.

Состав затрат времени на выполнение запроса

Сервер БД работает с единицами дисковой памяти, называемыми дисковыми страницами (размер зависит от сервера – 1024-2048 байт).

Буферами страниц – называются наборы областей ОП, которые содержат копии ранее прочитанных дисковых страниц. Размер зависит от сервера и ОС.

Состав затрат:

  • Затраты на действия в оперативной памяти

Быстро – проверка фильтров и соединение. Медленно – сортировка и обработка сравнений, использующих LIKE и MATCHES.

  • Затраты на чтение строки с диска

Сервер читает дисковую страницу, содержащую нижнюю строку. Затраты на чтение одной страницы являются основной единицей измерения объемов работы, используемой в расчетах оптимизатором.

Реальные затраты на чтение с диска определяются сочетанием следующих ситуаций:

  1. Находится ненужная страница в буфере

  2. Есть ли одновременное обращение нескольких программ, что влечет временные задержки.

  3. На сколько необходимо переместить магнитную головку дисковода р необходимой магнитной дорожке.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]