🗊Презентация Подсказки для оптимизатора

Категория: Информатика
Нажмите для полного просмотра!
Подсказки для оптимизатора, слайд №1Подсказки для оптимизатора, слайд №2Подсказки для оптимизатора, слайд №3Подсказки для оптимизатора, слайд №4Подсказки для оптимизатора, слайд №5Подсказки для оптимизатора, слайд №6Подсказки для оптимизатора, слайд №7Подсказки для оптимизатора, слайд №8Подсказки для оптимизатора, слайд №9Подсказки для оптимизатора, слайд №10Подсказки для оптимизатора, слайд №11Подсказки для оптимизатора, слайд №12Подсказки для оптимизатора, слайд №13Подсказки для оптимизатора, слайд №14Подсказки для оптимизатора, слайд №15Подсказки для оптимизатора, слайд №16Подсказки для оптимизатора, слайд №17Подсказки для оптимизатора, слайд №18Подсказки для оптимизатора, слайд №19Подсказки для оптимизатора, слайд №20Подсказки для оптимизатора, слайд №21Подсказки для оптимизатора, слайд №22Подсказки для оптимизатора, слайд №23Подсказки для оптимизатора, слайд №24Подсказки для оптимизатора, слайд №25Подсказки для оптимизатора, слайд №26Подсказки для оптимизатора, слайд №27Подсказки для оптимизатора, слайд №28Подсказки для оптимизатора, слайд №29Подсказки для оптимизатора, слайд №30Подсказки для оптимизатора, слайд №31Подсказки для оптимизатора, слайд №32Подсказки для оптимизатора, слайд №33Подсказки для оптимизатора, слайд №34Подсказки для оптимизатора, слайд №35Подсказки для оптимизатора, слайд №36Подсказки для оптимизатора, слайд №37Подсказки для оптимизатора, слайд №38Подсказки для оптимизатора, слайд №39Подсказки для оптимизатора, слайд №40Подсказки для оптимизатора, слайд №41Подсказки для оптимизатора, слайд №42

Содержание

Вы можете ознакомиться и скачать презентацию на тему Подсказки для оптимизатора. Доклад-сообщение содержит 42 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Подсказки для оптимизатора
Графеева Н.Г.
2017
Описание слайда:
Подсказки для оптимизатора Графеева Н.Г. 2017

Слайд 2





План запроса
Практически любую задачу по получению каких-либо результатов из базы данных можно решить несколькими способами, т.е. написать несколько разных запросов, которые дадут один и тот же результат. Это, однако не означает, что база данных эти запросы будет выполнять по-разному. Также неверно мнение о том, что структура запроса может повлиять на то, как Oracle будет его выполнять (это касается порядка временных таблиц, JOINS и условий отбора в WHERE). Решение о том, как построить запрос принимает оптимизатор Oracle. Алгоритм получения сервером данных для конкретного запроса называют планом запроса.
Практически все продукты для работы с базой данных Oracle позволяют просмотреть план конкретного запроса. ORACLE Apex также не является исключением.
Описание слайда:
План запроса Практически любую задачу по получению каких-либо результатов из базы данных можно решить несколькими способами, т.е. написать несколько разных запросов, которые дадут один и тот же результат. Это, однако не означает, что база данных эти запросы будет выполнять по-разному. Также неверно мнение о том, что структура запроса может повлиять на то, как Oracle будет его выполнять (это касается порядка временных таблиц, JOINS и условий отбора в WHERE). Решение о том, как построить запрос принимает оптимизатор Oracle. Алгоритм получения сервером данных для конкретного запроса называют планом запроса. Практически все продукты для работы с базой данных Oracle позволяют просмотреть план конкретного запроса. ORACLE Apex также не является исключением.

Слайд 3





Как это выглядит в ORACLE APEX?
Описание слайда:
Как это выглядит в ORACLE APEX?

Слайд 4





Некоторые термины в плане запроса
TABLE ACCESS FULL — сервер просмотрит все записи таблицы. 
TABLE ACCESS BY INDEX ROWID — таблица будет просмотрена частично с помощью индекса. 
INDEX RANGE SCAN — для получения выборки нужных значений  будет использован индекс таблицы. 
HASH JOIN — для получения выборки нужных значений будет построена хэш-таблица. 
NESTED LOOPS — нужные значения будут получены путем полного просмотра основной таблицы и поиском записей во вспомогательной. Это реализация схемы доступа «один — ко многим», т.е. в качестве основной таблицы будет выбрана та в которой наименьшее количество записей, на основе этих записей будет производиться поиск во вспомогательной таблице.
Описание слайда:
Некоторые термины в плане запроса TABLE ACCESS FULL — сервер просмотрит все записи таблицы. TABLE ACCESS BY INDEX ROWID — таблица будет просмотрена частично с помощью индекса. INDEX RANGE SCAN — для получения выборки нужных значений будет использован индекс таблицы. HASH JOIN — для получения выборки нужных значений будет построена хэш-таблица. NESTED LOOPS — нужные значения будут получены путем полного просмотра основной таблицы и поиском записей во вспомогательной. Это реализация схемы доступа «один — ко многим», т.е. в качестве основной таблицы будет выбрана та в которой наименьшее количество записей, на основе этих записей будет производиться поиск во вспомогательной таблице.

Слайд 5





Некоторые термины в плане запроса
SORT MERGE JOIN — используется для соединения записей нескольких независимых источников. Сначала оба источника сортируются по объединяющему ключу, а затем происходит из слияние. 
BUFFER SORT — в некоторых случаях Oracle может определить, что при выполнении запроса обращение к некоторому блоку данных может быть выполнено несколько раз, в этом случае Oracle помещает этот блок в специальную область, чтобы ускорить к нему доступ. Запрос может не иметь ключевого слова SORT, но при его выполнении будет вызвана эта операция. 
MERGE JOIN CARTESIAN — для получения выборки нужных значений будет организовано перемножение записей в двух таблицах (для каждой записи основной таблицы будут просмотрены все записи вспомогательной). Это очень плохая операция, ее наличие в плане запроса говорит о том, что скорей всего упущена какая-то связка в JOIN.
Описание слайда:
Некоторые термины в плане запроса SORT MERGE JOIN — используется для соединения записей нескольких независимых источников. Сначала оба источника сортируются по объединяющему ключу, а затем происходит из слияние. BUFFER SORT — в некоторых случаях Oracle может определить, что при выполнении запроса обращение к некоторому блоку данных может быть выполнено несколько раз, в этом случае Oracle помещает этот блок в специальную область, чтобы ускорить к нему доступ. Запрос может не иметь ключевого слова SORT, но при его выполнении будет вызвана эта операция. MERGE JOIN CARTESIAN — для получения выборки нужных значений будет организовано перемножение записей в двух таблицах (для каждой записи основной таблицы будут просмотрены все записи вспомогательной). Это очень плохая операция, ее наличие в плане запроса говорит о том, что скорей всего упущена какая-то связка в JOIN.

Слайд 6





Анализ плана запроса
При анализе плана запроса необходимо примерно представлять объемы записей в таблицах и наличие у них индексов, которые могут пригодиться при фильтрации записей. Для доступа к данным Oracle использует несколько стратегий, какие из них выбраны для каждой из таблиц можно понять из плана запроса. При просмотре плана, необходимо решить, правильная ли выбрана стратегия в том или ином случае. Далее приведены краткие описания способов доступа и механизмов отбора записей при соединениях результирующих наборов.
Описание слайда:
Анализ плана запроса При анализе плана запроса необходимо примерно представлять объемы записей в таблицах и наличие у них индексов, которые могут пригодиться при фильтрации записей. Для доступа к данным Oracle использует несколько стратегий, какие из них выбраны для каждой из таблиц можно понять из плана запроса. При просмотре плана, необходимо решить, правильная ли выбрана стратегия в том или ином случае. Далее приведены краткие описания способов доступа и механизмов отбора записей при соединениях результирующих наборов.

Слайд 7





Full Table Scan (Table Access Full).
Может показаться, что доступ к данным таблицы быстрее осуществлять через индекс, но это не так. Иногда дешевле прочитать всю таблицу целиком, чем прочитать, например, 80% записей таблицы через индекс, так как чтение индекса тоже требует ресурсов. Очень нежелательна ситуация, когда эта операция стоит первой в объединении наборов записей и таблица, которая читается полностью, большая. Еще хуже ситуация с большой таблицей на второй позиции в объединении, это означает, что она также будет прочитана полностью, а если объединение производится через NESTED LOOPS, то таблица будет читаться несколько раз, поэтому запрос будет работать очень долго.
Описание слайда:
Full Table Scan (Table Access Full). Может показаться, что доступ к данным таблицы быстрее осуществлять через индекс, но это не так. Иногда дешевле прочитать всю таблицу целиком, чем прочитать, например, 80% записей таблицы через индекс, так как чтение индекса тоже требует ресурсов. Очень нежелательна ситуация, когда эта операция стоит первой в объединении наборов записей и таблица, которая читается полностью, большая. Еще хуже ситуация с большой таблицей на второй позиции в объединении, это означает, что она также будет прочитана полностью, а если объединение производится через NESTED LOOPS, то таблица будет читаться несколько раз, поэтому запрос будет работать очень долго.

Слайд 8





Nested Loops
Такое соединение может использоваться оптимизатором, когда небольшой основной набор записей (стоит первым в плане запроса) объединяется с помощью условия, позволяющего эффективно выбрать записи из второго набора. Важным условием успешного использования такого соединения является наличие связи между основным и второстепенным набором записей. Если такой связи нет, то для каждой записи в первом наборе, из второго набора будут извлекаться одни и те же записи, что может привести к значительному увеличению времени запроса. Если вы видите, что в плане запроса применен NESTED LOOPS, а соединяемые наборы не удовлетворяют этому условию, то это плохой запрос.
Описание слайда:
Nested Loops Такое соединение может использоваться оптимизатором, когда небольшой основной набор записей (стоит первым в плане запроса) объединяется с помощью условия, позволяющего эффективно выбрать записи из второго набора. Важным условием успешного использования такого соединения является наличие связи между основным и второстепенным набором записей. Если такой связи нет, то для каждой записи в первом наборе, из второго набора будут извлекаться одни и те же записи, что может привести к значительному увеличению времени запроса. Если вы видите, что в плане запроса применен NESTED LOOPS, а соединяемые наборы не удовлетворяют этому условию, то это плохой запрос.

Слайд 9





Hash Joins
Используется при соединении больших наборов данных. Оптимизатор использует наименьший из наборов данных для построения в памяти хэш-таблицы по ключу соединения. Затем он сканирует большую таблицу, используя хэш-таблицу для нахождения записей, которые удовлетворяют условию объединения. Оптимизатор использует HASH JOIN, если наборы данных соединяются с помощью операторов и ключевых слов эквивалентности (=, AND) и если присутствует одно из условий:

■ Необходимо соединить наборы данных большого объема.
■ Большая часть небольшого набора данных должна быть использована в соединении.
Описание слайда:
Hash Joins Используется при соединении больших наборов данных. Оптимизатор использует наименьший из наборов данных для построения в памяти хэш-таблицы по ключу соединения. Затем он сканирует большую таблицу, используя хэш-таблицу для нахождения записей, которые удовлетворяют условию объединения. Оптимизатор использует HASH JOIN, если наборы данных соединяются с помощью операторов и ключевых слов эквивалентности (=, AND) и если присутствует одно из условий: ■ Необходимо соединить наборы данных большого объема. ■ Большая часть небольшого набора данных должна быть использована в соединении.

Слайд 10





Sort Merge Join
Данное соединение может быть применено для независимых наборов данных. Обычно Oracle выбирает такую стратегию, если наборы данных уже отсортированы ранее, и если дальнейшая сортировка результата соединения не требуется. Обычно это имеет место для наборов, которые соединяются с помощью операторов <, <=, >, >=. Для этого типа соединения нет понятия главного и вспомогательного набора данных, сначала оба набора сортируются по общему ключу, а затем сливаются в одно целое. Если какой-то из наборов уже отсортирован, то повторная сортировка для него не производится.
Описание слайда:
Sort Merge Join Данное соединение может быть применено для независимых наборов данных. Обычно Oracle выбирает такую стратегию, если наборы данных уже отсортированы ранее, и если дальнейшая сортировка результата соединения не требуется. Обычно это имеет место для наборов, которые соединяются с помощью операторов <, <=, >, >=. Для этого типа соединения нет понятия главного и вспомогательного набора данных, сначала оба набора сортируются по общему ключу, а затем сливаются в одно целое. Если какой-то из наборов уже отсортирован, то повторная сортировка для него не производится.

Слайд 11





Cartesian Joins
Это соединение используется, когда одна и более таблиц не имеют никаких условий соединения с какой-либо другой таблицей в запросе. В этом случае произойдет объединение каждой записи из одного набора данных с каждой записью в другом. Наличие такого соединения может (но не обязательно) означать  присутствие серьезных проблем в запросе. В этом случае, возможно, упущены дополнительные условия соединения наборов данных.
Описание слайда:
Cartesian Joins Это соединение используется, когда одна и более таблиц не имеют никаких условий соединения с какой-либо другой таблицей в запросе. В этом случае произойдет объединение каждой записи из одного набора данных с каждой записью в другом. Наличие такого соединения может (но не обязательно) означать присутствие серьезных проблем в запросе. В этом случае, возможно, упущены дополнительные условия соединения наборов данных.

Слайд 12





Определение
Подсказка (hint) – это указание оптимизатору на необходимость исполнения определенной формы доступа к данным на некотором шаге построения плана исполняемого запроса.
Описание слайда:
Определение Подсказка (hint) – это указание оптимизатору на необходимость исполнения определенной формы доступа к данным на некотором шаге построения плана исполняемого запроса.

Слайд 13





Синтаксис
{DELETE|INSERT|SELECT|UPDATE} /*+ hint [text] [hint[text]]... */...
or 
{DELETE|INSERT|SELECT|UPDATE} --+ hint [text] [hint[text]]...
Описание слайда:
Синтаксис {DELETE|INSERT|SELECT|UPDATE} /*+ hint [text] [hint[text]]... */... or {DELETE|INSERT|SELECT|UPDATE} --+ hint [text] [hint[text]]...

Слайд 14





Примеры
======================================================
SELECT 
/*+ ALL_ROWS */ 
empno, ename, sal, job 
FROM emp 
WHERE ename = ‘CAT’;
=======================================================
SELECT 
--+ RULE 
empno, ename, sal, job 
FROM emp 
WHERE empno > 7566;
=======================================================
Описание слайда:
Примеры ====================================================== SELECT /*+ ALL_ROWS */ empno, ename, sal, job FROM emp WHERE ename = ‘CAT’; ======================================================= SELECT --+ RULE empno, ename, sal, job FROM emp WHERE empno > 7566; =======================================================

Слайд 15





Что будет, если подсказка написана неправильно… 
ORACLE игнорирует подсказки, которые не следуют за ключевыми словами DELETE, INSERT, SELECT or UPDATE  (рассматривает, как простые комментарии). 
ORACLE игнорирует подсказки, написанные с синтаксическими ошибками , но при этом учитывает правильные подсказки, написанные в этом же операторе. 
ORACLE игнорирует конфликтующие подсказки, но при этом учитывает правильные подсказки, написанные в этом же операторе.
Описание слайда:
Что будет, если подсказка написана неправильно… ORACLE игнорирует подсказки, которые не следуют за ключевыми словами DELETE, INSERT, SELECT or UPDATE (рассматривает, как простые комментарии). ORACLE игнорирует подсказки, написанные с синтаксическими ошибками , но при этом учитывает правильные подсказки, написанные в этом же операторе. ORACLE игнорирует конфликтующие подсказки, но при этом учитывает правильные подсказки, написанные в этом же операторе.

Слайд 16





Группы подсказок
Подсказки можно разделить на следующие группы:
подсказки задающие цели оптимизации
подсказки задающие методы доступа
подсказки для операций соединения
другие подсказки
Описание слайда:
Группы подсказок Подсказки можно разделить на следующие группы: подсказки задающие цели оптимизации подсказки задающие методы доступа подсказки для операций соединения другие подсказки

Слайд 17





Подсказки, задающие цели оптимизации
ALL_ROWS 
FIRST_ROWS(n) 
CHOOSE 
RULE
Описание слайда:
Подсказки, задающие цели оптимизации ALL_ROWS FIRST_ROWS(n) CHOOSE RULE

Слайд 18





Пример (ALL_ROWS)
SELECT /*+ ALL_ROWS */ 
               employee_id, 
               last_name, 
               salary,            		
               job_id 
FROM employees
Описание слайда:
Пример (ALL_ROWS) SELECT /*+ ALL_ROWS */ employee_id, last_name, salary, job_id FROM employees

Слайд 19





Пример (FIRST_ROWS(n))
SELECT 
/*+ FIRST_ROWS(10) */ 
empno, ename, sal, job 
FROM emp
Описание слайда:
Пример (FIRST_ROWS(n)) SELECT /*+ FIRST_ROWS(10) */ empno, ename, sal, job FROM emp

Слайд 20





Пример (CHOOSE)
SELECT 
/*+ CHOOSE */ 
empno, ename, sal, job 
FROM emp 
WHERE empno = 7566;
Описание слайда:
Пример (CHOOSE) SELECT /*+ CHOOSE */ empno, ename, sal, job FROM emp WHERE empno = 7566;

Слайд 21





Пример (RULE)
SELECT 
--+ RULE 
empno, ename, sal, job 
FROM emp 
WHERE empno = 7566;
Описание слайда:
Пример (RULE) SELECT --+ RULE empno, ename, sal, job FROM emp WHERE empno = 7566;

Слайд 22





Подсказки, задающие методы доступа
FULL 
ROWID 
INDEX 
INDEX_ASC 
INDEX_DESC 
INDEX_FFS 
NO_INDEX
INDEX_COMBINE
INDEX_JOIN
….
Описание слайда:
Подсказки, задающие методы доступа FULL ROWID INDEX INDEX_ASC INDEX_DESC INDEX_FFS NO_INDEX INDEX_COMBINE INDEX_JOIN ….

Слайд 23





Пример (FULL)
SELECT /*+ FULL(e) */ 
          employee_id, 
          last_name 
FROM hr.employees e 
WHERE last_name LIKE ‘%A’;
Описание слайда:
Пример (FULL) SELECT /*+ FULL(e) */ employee_id, last_name FROM hr.employees e WHERE last_name LIKE ‘%A’;

Слайд 24





Пример (ROWID)
SELECT 
/*+ROWID(emp)*/ * 
FROM emp 
WHERE rowid > 'AAAAtkAABAAAFNTAAA' 
AND empno = 155;
Описание слайда:
Пример (ROWID) SELECT /*+ROWID(emp)*/ * FROM emp WHERE rowid > 'AAAAtkAABAAAFNTAAA' AND empno = 155;

Слайд 25





Пример (INDEX)
SELECT /*+ INDEX (employees emp_department_ix)*/               		      employee_id, department_id 
FROM employees 
WHERE department_id > 50;
Описание слайда:
Пример (INDEX) SELECT /*+ INDEX (employees emp_department_ix)*/ employee_id, department_id FROM employees WHERE department_id > 50;

Слайд 26





Пример (INDEX_ASC)
Описание слайда:
Пример (INDEX_ASC)

Слайд 27





Пример (INDEX_ASC)
Описание слайда:
Пример (INDEX_ASC)

Слайд 28





Пример (INDEX_ASC)
Описание слайда:
Пример (INDEX_ASC)

Слайд 29





Пример (INDEX_DESC)
SELECT /*+ INDEX_DESC(emp pk_emp) */  
              empno , ename
FROM emp
SELECT /*+ INDEX_DESC(emp pk_emp) */      
              empno , ename
FROM emp where rownum = 1
Описание слайда:
Пример (INDEX_DESC) SELECT /*+ INDEX_DESC(emp pk_emp) */ empno , ename FROM emp SELECT /*+ INDEX_DESC(emp pk_emp) */ empno , ename FROM emp where rownum = 1

Слайд 30





Пример (INDEX_FFS)
SELECT 
/*+INDEX_FFS(emp emp_empno)*/ empno 
FROM emp 
WHERE empno > 200;
Описание слайда:
Пример (INDEX_FFS) SELECT /*+INDEX_FFS(emp emp_empno)*/ empno FROM emp WHERE empno > 200;

Слайд 31





Пример (NO_INDEX)
SELECT 
/*+NO_INDEX(emp emp_empno)*/ 
empno 
FROM emp 
WHERE empno > 200;
Описание слайда:
Пример (NO_INDEX) SELECT /*+NO_INDEX(emp emp_empno)*/ empno FROM emp WHERE empno > 200;

Слайд 32





Пример (INDEX_COMBINE)
SELECT 
  /*+ INDEX_COMBINE(e emp_manager_ix emp_department_ix) */ * 
FROM employees e 
WHERE manager_id = 108 OR department_id = 110; 
Примечание: emp_manager_ix, emp_department_ix  - bitmap индексы по полям manager_id  и department_id. Оптимизатору рекомендовано построить логическое выражение (операция OR) из этих индексов.
Описание слайда:
Пример (INDEX_COMBINE) SELECT /*+ INDEX_COMBINE(e emp_manager_ix emp_department_ix) */ * FROM employees e WHERE manager_id = 108 OR department_id = 110; Примечание: emp_manager_ix, emp_department_ix - bitmap индексы по полям manager_id и department_id. Оптимизатору рекомендовано построить логическое выражение (операция OR) из этих индексов.

Слайд 33





Пример (INDEX_JOIN)
SELECT
 /*+ INDEX_JOIN(e emp_manager_ix emp_department_ix) */    	department_id 
FROM employees e 
WHERE manager_id < 110 AND department_id < 50; 
Оптимизатору рекомендовано построить логическое выражение (операция AND) из этих индексов.
Описание слайда:
Пример (INDEX_JOIN) SELECT /*+ INDEX_JOIN(e emp_manager_ix emp_department_ix) */ department_id FROM employees e WHERE manager_id < 110 AND department_id < 50; Оптимизатору рекомендовано построить логическое выражение (операция AND) из этих индексов.

Слайд 34





Подсказки для операции соединения (JOIN)
USE_NL  - использовать вложенные циклы для соединения указанных в подсказке таблиц;
USE_MERGE – сначала выполнить сортировку, а затем ‘склеивание’ указанных таблиц;
USE_HASH – HASH-соединение (сначала строится HASH-таблица, а затем ‘склеиваются’ фрагменты с одинаковыми HASH-значениями)
……..
Описание слайда:
Подсказки для операции соединения (JOIN) USE_NL - использовать вложенные циклы для соединения указанных в подсказке таблиц; USE_MERGE – сначала выполнить сортировку, а затем ‘склеивание’ указанных таблиц; USE_HASH – HASH-соединение (сначала строится HASH-таблица, а затем ‘склеиваются’ фрагменты с одинаковыми HASH-значениями) ……..

Слайд 35





Пример (USE_NL)
SELECT 
/*+ USE_NL(customers) to get first row faster */ 
       accounts.balance, 
       customers.last_name, 
       customers.first_name 
FROM accounts, customers 
WHERE accounts.custno = customers.custno;
Описание слайда:
Пример (USE_NL) SELECT /*+ USE_NL(customers) to get first row faster */ accounts.balance, customers.last_name, customers.first_name FROM accounts, customers WHERE accounts.custno = customers.custno;

Слайд 36





Пример (USE_MERGE)
SELECT 
/*+USE_MERGE(emp dept)*/ * 
FROM emp, dept 
WHERE emp.deptno = dept.deptno;
Описание слайда:
Пример (USE_MERGE) SELECT /*+USE_MERGE(emp dept)*/ * FROM emp, dept WHERE emp.deptno = dept.deptno;

Слайд 37





Другие подсказки
MATERIALIZE – материализовать промежуточную таблицу
PARALLEL – распараллелить выполнение запроса
И др.
Описание слайда:
Другие подсказки MATERIALIZE – материализовать промежуточную таблицу PARALLEL – распараллелить выполнение запроса И др.

Слайд 38





Сбор статистики, полезной для оптимизатора
Статистика по таблицам 
   Количество записей 
       Количество блоков 
       Средняя длина записи 
Статистика по колонкам 
      Количество различных значений в колонках 
      Количество null-значений в колонках 
     
Статистика по индексам
Системная статистика
Описание слайда:
Сбор статистики, полезной для оптимизатора Статистика по таблицам Количество записей Количество блоков Средняя длина записи Статистика по колонкам Количество различных значений в колонках Количество null-значений в колонках Статистика по индексам Системная статистика

Слайд 39





Процедуры для сбора статистики (пакет DBMS_STATS)
GATHER_INDEX_STATS  
GATHER_TABLE_STATS  
GATHER_SCHEMA_STATS  
GATHER_DATABASE_STATS  
GATHER_SYSTEM_STATS
Примечание: эти процедуры не запускаются автоматически! Необходимо встраивать в приложения регулярный сбор статистики (или создавать отдельные приложения для администрирования).
Описание слайда:
Процедуры для сбора статистики (пакет DBMS_STATS) GATHER_INDEX_STATS   GATHER_TABLE_STATS   GATHER_SCHEMA_STATS   GATHER_DATABASE_STATS   GATHER_SYSTEM_STATS Примечание: эти процедуры не запускаются автоматически! Необходимо встраивать в приложения регулярный сбор статистики (или создавать отдельные приложения для администрирования).

Слайд 40





Представления словаря для просмотра статистики
DBA_TABLES 
DBA_TAB_COL_STATISTICS 
DBA_INDEXES
Описание слайда:
Представления словаря для просмотра статистики DBA_TABLES DBA_TAB_COL_STATISTICS DBA_INDEXES

Слайд 41





Пример
SELECT TABLE_NAME, 
                NUM_ROWS, 
                BLOCKS, 
                AVG_ROW_LEN,
               TO_CHAR(LAST_ANALYZED,
                                 'MM/DD/YYYY HH24:MI:SS') 
FROM DBA_TABLES 
WHERE 
TABLE_NAME IN ('SO_LINES_ALL','SO_HEADERS_ALL','SO_LAST_ALL');
Описание слайда:
Пример SELECT TABLE_NAME, NUM_ROWS, BLOCKS, AVG_ROW_LEN, TO_CHAR(LAST_ANALYZED, 'MM/DD/YYYY HH24:MI:SS') FROM DBA_TABLES WHERE TABLE_NAME IN ('SO_LINES_ALL','SO_HEADERS_ALL','SO_LAST_ALL');

Слайд 42





Домашнее задание 8(10 баллов)
Загрузите данные о потреблении электроэнергии (XML-файл  electric power.xml прилагается к презентации). Проанализируйте среднестатистическое потребление электроэнергии по временам года и дням недели. Результат  выдайте в виде таблицы и соответствующих графиков (для времен года). Примерный вид таблицы:
Описание слайда:
Домашнее задание 8(10 баллов) Загрузите данные о потреблении электроэнергии (XML-файл electric power.xml прилагается к презентации). Проанализируйте среднестатистическое потребление электроэнергии по временам года и дням недели. Результат выдайте в виде таблицы и соответствующих графиков (для времен года). Примерный вид таблицы:



Похожие презентации
Mypresentation.ru
Загрузить презентацию