русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-08-31; просмотров: 706; Нарушение авторских прав


3) Во время работы PL/SQL-блока в другой сессии регулярно смотреть, до какого этапа дошла загрузка, запросом из лога:

select * from kk_events_log order by event_date desc, event_description desc;

 

Создадим процедуру kk_insert_kk_events_log:

create or replace procedure kk_insert_kk_events_log(in_event_date in date default sysdate,

in_event_description in varchar2) as

PRAGMA AUTONOMOUS_TRANSACTION;

begin

insert into kk_events_log

(event_date, event_description)

values

(in_event_date, in_event_description);

commit;

end kk_insert_kk_events_log;

 

Напишем требуемый PL/SQL-блок:

begin

-- 2.1

kk_insert_kk_events_log(in_event_description => 'Начата вставка данных об именах клиентов');

for i in 1 .. 50000 loop

insert into kk_clients_big_table

(client_name)

values

(dbms_random.string('a', 6));

end loop;

kk_insert_kk_events_log(in_event_description => 'Завершена вставка данных об именах клиентов');

-- 2.2

kk_insert_kk_events_log(in_event_description => 'Начат update данных о регионах клиентов');

for z in (select rowid rw from kk_clients_big_table) loop

update kk_clients_big_table

set region_name = dbms_random.string('p', 8)

where rowid = z.rw;

end loop;

kk_insert_kk_events_log(in_event_description => 'Завершен update данных о регионах клиентов');

-- 2.3

kk_insert_kk_events_log(in_event_description => 'Начат update данных о паспортах клиентов');

for z in (select rowid rw from kk_clients_big_table) loop

update kk_clients_big_table

set passport_ser_num = dbms_random.string('x', 10)

where rowid = z.rw;

end loop;

kk_insert_kk_events_log(in_event_description => 'Завершен update данных о паспортах клиентов');

--

commit;

end;

 

Согласно требованию задачи во время работы этого PL/SQL-блока в другой сессии будем регулярно смотреть, до какого этапа дошла загрузка, запросом:



select * from kk_events_log order by event_date desc, event_description desc;

 

Только в конце PL/SQL-блока выполняется commit, потому что, если загрузка упадет на каком-то этапе, то недогруженные данные нам не нужны. А до какого этапа дошла загрузка, можно понять из лога.

 

По завершении PL/SQL-блока посмотрим на загрузившиеся данные:

select * from kk_clients_big_table;

 

Отметим, что update-ы выполнялись медленнее, чем insert-ы. Если бы это были update-ы не по rowid и не по проиндексированным полям, то было бы еще медленнее.



<== предыдущая лекция | следующая лекция ==>
Задача. Автономное логирование этапов загрузки. | Иерархические запросы.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.874 сек.