Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РСБДтЗ / Курс лекций РСБДиЗ.doc
Скачиваний:
135
Добавлен:
05.03.2016
Размер:
1.63 Mб
Скачать

Изменяющиеся таблицы

create table grp(gn number primary key, gname varchar2(10));

create table std(sn number primary key,

gn number references grp, sname varchar2(100));

При добавлении группы студента в группу с максимальным кол-вом студентов, перенаправляем его в группу с минимальным кол-вом студентов

create or replace trigger std_i_a

after insert

on std

for each row

declare

n number;

begin

dbms_output.put_line('OK insert after');

select count(*) into n from std where gn = :new.gn;

dbms_output.put_line('n = ' || n);

end;

create or replace trigger std_i_b

before insert

on std

for each row

declare

n number;

begin

dbms_output.put_line('OK insert before');

select count(*) into n from std where gn = :new.gn;

dbms_output.put_line('n = ' || n);

end;

create or replace trigger std_i_a_all

after insert

on std

declare

n number;

begin

dbms_output.put_line('OK insert after all');

select count(*) into n from std;

dbms_output.put_line('n = ' || n);

end;

create or replace trigger std_i_b_all

before insert

on std

declare

n number;

begin

dbms_output.put_line('OK insert before all');

select count(*) into n from std;

dbms_output.put_line('n = ' || n);

end;

12. Лекция: Оптимизация выполнения запросов Выполнение запросов в Oracle. Общая схема и взаимодействие с клиентским приложением и машиной pl/sql

Все SQL-запросы, поступающие в СУБД, обрабатываются примерно по одной схеме.

На первой фазе запрос, заданный на языке запросов, подвергается лексическому исинтаксическому анализу. При этом вырабатывается его внутреннее представление, отражающее структуру запроса и содержащее информацию, которая характеризует объекты базы данных, упомянутые в запросе (отношения, поля и константы). Информация о хранимых в базе данных объектах выбирается из каталогов базы данных. Внутреннее представление запроса используется и преобразуется на следующих стадиях обработки запроса.

На второй фазе запрос во внутреннем представлении подвергается логическойоптимизации. Могут применяться различные преобразования, "улучшающие" начальное представление запроса. Среди преобразований могут быть эквивалентные, после проведения которых получается внутреннее представление, семантическиэквивалентное начальному (например, приведение запроса к некоторой канонической форме), Преобразования могут быть и семантическими: получаемое представление не является семантически эквивалентным начальному, но гарантируется, что результат выполнения преобразованного запроса совпадает с результатом запроса в начальной форме при соблюдении ограничений целостности, существующих в базе данных. После выполнения второй фазы обработки запроса его внутреннее представление остаетсянепроцедурным, хотя и является в некотором смысле более эффективным, чем начальное.

Третий этап обработки запроса состоит в выборе на основе информации, которой располагает оптимизатор, набора альтернативных процедурных планов выполненияданного запроса в соответствии с его внутреннем представлением, полученным на второй фазе. Для каждого плана оценивается предполагаемая стоимость выполнения запроса. При оценках используется статистическая информация о состоянии базы данных, доступная оптимизатору. Из полученных альтернативных планов выбирается наиболее дешевый, и его внутреннее представление теперь соответствует обрабатываемому запросу.

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

Наконец, на пятом этапе обработки запроса происходит его реальное выполнение.

Соседние файлы в папке РСБДтЗ