Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6_7_opt.pdf
Скачиваний:
17
Добавлен:
21.03.2016
Размер:
1.97 Mб
Скачать

Вопрос2

Пока нет ответа Балл: 1 Отметить вопрос

Текст вопроса

16. С помощью процедуры GATHER_TABLE_STATS пакета DBMS_STATS

(1)соберите статистику по таблице EMP и используемому ей индексу.

17.(2)Убедитесь, что статистика была успешно собрана(см. пп.7-8).

18.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Снова

 

выполните

трассировку

(autotrace)

запросов

из

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

скриптов

 

literal9.sql

и

literal10.sql

.

 

 

 

(3)

Зафиксируйте и прокомментируйте результат

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

literal9.sql

 

 

 

 

 

 

 

SELECT

COUNT

(*),

MAX

(

empno

)

FROM

emp

WHERE

deptno

=

9

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

literal10.sql

SELECTCOUNT(*),MAX(empno)FROM emp WHERE deptno =10;

19. С помощью процедуры DELETE_SCHEMA_STATS пакета DBMS_STATS

(4)удалите собранную статистику.

EXECUTE dbms_stats.delete_table_stats('AGS','EMP');

одновременно удалилась статистика и на индекс.

20.(5)Проверьте результат(см. пп.7-8).

21. Просмотрите список автоматических заданий для Вашей базы данных. Вы можете найти нужную информацию в Enterprise Manager Database Control (зайти можно через браузер Konqueror, логин - sys, пароль - oracle, connect as SYSDBA. Далее перейти на вкладку Server и пройти по ссылке Programs в разделе Oracle Scheduler), а также в таблице DBA_AUTOTASK_TASK, просмотрев столбцы client_name, task_name, task_target_type и operation_name

(6)Какое задание отвечает за автоматический сбор статистики?

22. Запустите автоматический сбор статистики, не дожидаясь открытия очередного окна обслуживания (maintenance window):

a.В SQLDeveloper в пункте меню View выберите DBMS_OUTPUT и соединение для пользователя SYS.

b.Из-под учётной записи пользователя SYS выполните скриптrun_ags_pl.sql(может выполняться примерно 2 мин.)

SET SERVEROUTPUT ON

run_ags_pl.sql

DECLARE

WINDOW VARCHAR2 (20);

BEGIN

DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT;

SELECT UPPER(TO_CHAR(SYSDATE,'fmday'))||'_WINDOW' INTO WINDOW FROM DUAL; DBMS_OUTPUT.PUT_LINE('Window is: '|| WINDOW);

--

-- Open the corresponding maintenance window, but with other clients disabled

--

EXECUTEIMMEDIATE'alter system set "_enable_automatic_maintenance"=1';

dbms_auto_task_admin.disable('auto space advisor', NULL, window); dbms_auto_task_admin.disable('sql tuning advisor',NULL, window);

dbms_scheduler.open_window(window, NULL, TRUE);

--

-- Close the maintenance window when auto optimizer stats collection is done

--

DBMS_LOCK.SLEEP(120); dbms_scheduler.close_window(window);

EXECUTE IMMEDIATE 'alter system set "_enable_automatic_maintenance"=0';

--

--Re-enable the other guys so they look like they are enabled in EM.

--Still they will be disabled because we have set the underscore.

dbms_auto_task_admin.enable('auto space advisor', NULL, window); dbms_auto_task_admin.enable('sql tuning advisor',NULL, window);

END;

c. Закройте вкладку DBMS_OUTPUT.

23. Посмотрите статистику для таблицы EMP (см. п.7).

(7)Прокомментируйте результат.

24.

 

 

 

 

 

 

 

 

 

 

 

Снова

выполните

трассировку

(autotrace)

запросов

из

 

 

 

 

 

 

 

 

 

 

скриптов

 

literal9.sql

и

literal10.sql

.

 

 

 

(8) Зафиксируйте и прокомментируйте результат.

literal9.sql

SELECTCOUNT(*),MAX(empno)FROM emp WHERE deptno =9;

literal10.sql

SELECTCOUNT(*),MAX(empno)FROM emp WHERE deptno =10;

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