Arhn - архитектура программирования

Количество физических и логических операций ввода-вывода

Я хотел бы иметь возможность запускать какой-то план показа (аналогичный SYBASE) в оракуле, который будет показывать следующее для каждого запроса или хранимой процедуры:

  1. Физические операции ввода-вывода используются в каждом операторе.
  2. Логический ввод-вывод используется в каждом операторе.
  3. Индексы, используемые в каждом операторе.

Это очень просто для меня в sybase. У меня есть инструмент-анализатор, который делает это, и я трачу большую часть своего времени на разрешение элементов с высоким уровнем ввода-вывода.

Мне сказали сделать следующее:

set autotrace on statistics;
EXPLAIN PLAN FOR
SELECT * FROM SOMETABLE
SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY());

Это хорошо, но что такое ROWS? Это физический или логический ввод-вывод? Кроме того, что такое хеш-значение плана: 1611616177? Это общий IO? Я относительно новичок в оракуле, и у меня много вопросов для изучения.

26.07.2011

  • Рискуя бесстыдно заткнуться, я написал несколько статей о сравнительном анализе запросов и кода в Oracle - betteratoracle.com/articles/ У меня есть статья об использовании Autotrace, о том, как получить объяснения планов и т. д. 26.07.2011

Ответы:


1

В SQL*Plus вы можете сделать что-то вроде

SQL> set autotrace on;
SQL> select empno, ename from emp;

     EMPNO ENAME
---------- ----------
      7623 PAV
      7369 smith
      7499 ALLEN
      7521 WARD
      7566 JONES
      7654 MARTIN
      7698 BLAKE
      7782 CLARK
      7788 SCOTT
      7839 KING
      7844 TURNER

     EMPNO ENAME
---------- ----------
      7876 ADAMS
      7900 SM0
      7902 FORD
      7934 MILLER
      1234 BAR

16 rows selected.


Execution Plan
----------------------------------------------------------
Plan hash value: 3956160932

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |    16 |   160 |     3   (0)| 00:00:01 |
|   1 |  TABLE ACCESS FULL| EMP  |    16 |   160 |     3   (0)| 00:00:01 |
--------------------------------------------------------------------------


Statistics
----------------------------------------------------------
          1  recursive calls
          0  db block gets
          7  consistent gets
          0  physical reads
          0  redo size
        997  bytes sent via SQL*Net to client
        535  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         16  rows processed

Глядя на статистику внизу, последовательное получение является мерой логического ввода-вывода. Физические чтения измеряют количество необходимых физических чтений. Это также показывает план запроса, который включает в себя такие вещи, как оценка оптимизатором количества строк, которые будут возвращены каждым шагом запроса (т. е. оптимизатор правильно оценивает, что полное сканирование таблицы EMP вернет 16 строк, содержащих 160 байтов данных). данные).

26.07.2011
  • Как получить доступ к статистике? Я не вижу этого в моем исполнении: включить статистику автотрассировки; объяснить план для SELECT * FROM SCGFAD.SECURITIES; ВЫБЕРИТЕ PLAN_TABLE_OUTPUT ИЗ ТАБЛИЦЫ (DBMS_XPLAN.DISPLAY()); 26.07.2011
  • @Saro Khatchatourian - вы видите статистику, когда запрос действительно выполняется. Не тогда, когда вы создаете план запроса. 26.07.2011

  • 2

    Если вы хотите еще больше подробностей (и можете получить доступ к файлам трассировки), выполните поиск TKPROF

    см.: http://download.oracle.com/docs/cd/B10500_01/server.920/a96533/sqltrace.htm

    27.07.2011
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..