2009-03-03

Как читать CONNECT BY в плане

Нарыл очень полезную статью:
Striving for Optimal Performance » Operation CONNECT BY WITH FILTERING

В общем и целом смысл в чтении плана CONNECT BY WITH FILTERING:
---------------------------------------------------------------------
| Id | Operation | Name | Starts | A-Rows |
---------------------------------------------------------------------
|* 1 | CONNECT BY WITH FILTERING | | 1 | 14 |
|* 2 | TABLE ACCESS FULL | EMP | 1 | 1 |
| 3 | NESTED LOOPS | | 4 | 13 |
| 4 | BUFFER SORT | | 4 | 14 |
| 5 | CONNECT BY PUMP | | 4 | 14 |
| 6 | TABLE ACCESS BY INDEX ROWID| EMP | 14 | 13 |
|* 7 | INDEX RANGE SCAN | EMP_MGR_I | 14 | 13 |
| 8 | TABLE ACCESS FULL | EMP | 0 | 0 |
---------------------------------------------------------------------

Имеются 3 дочерние операции:
1. Получение первой строки START WITH (2)
2. Работа по извлечению строк следующего уровня, на основании текущего (3)
3. Строка, работающая, если все не помещается в памяти (8). На этот случай заведен баг, т.к. работать будет все очень долго.

PS: надо поискать книгу этого автора.