Какой из них является руководящим столом в плане выполнения? - PullRequest
0 голосов
/ 12 декабря 2018

В базе данных Oracle, когда я получу план выполнения или объясню план, какой источник строки будет считаться движущей таблицей?Это один над другим?Или это изменится во вложенных объединениях, объединениях слиянием и т. Д.?Кроме того, изменится ли он, если я получу план выполнения от разработчика SQL, или объясню команду плана и т. Д.?Я знаю, что оптимизатор выбирает меньшую таблицу в качестве таблицы управления.Но я знаю, что это не всегда так.Так что я запутался в этом.Кстати, я спрашиваю об оптимизации на основе затрат.Так что, если вы можете объяснить на CBO, это будет оценено.Например, в приведенном ниже плане, который является руководящим столом?Как мы понимаем, что это водительский стол?Это потому что оно сверху?С наилучшими пожеланиями

select * from hr.employees e join hr.departments d on d.department_id = 
e.department_id where d.department_name like 'A%'

Plan hash value: 1021246405

--------------------------------------------------------------------------------------------------
| Id  | Operation                    | Name              | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT             |                   |       |       |     4 (100)|          |
|   1 |  NESTED LOOPS                |                   |    10 |   900 |     4   (0)| 00:00:01 |
|   2 |   NESTED LOOPS               |                   |    10 |   900 |     4   (0)| 00:00:01 |
|*  3 |    TABLE ACCESS FULL         | DEPARTMENTS       |     1 |    21 |     3   (0)| 00:00:01 |
|*  4 |    INDEX RANGE SCAN          | EMP_DEPARTMENT_IX |    10 |       |     0   (0)|          |
|   5 |   TABLE ACCESS BY INDEX ROWID| EMPLOYEES         |    10 |   690 |     1   (0)| 00:00:01 |
--------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   3 - filter("D"."DEPARTMENT_NAME" LIKE 'A%')
   4 - access("D"."DEPARTMENT_ID"="E"."DEPARTMENT_ID")

Note
-----
   - this is an adaptive plan
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...