by F1, F2, F3, F4,
где F1, F2, F3 входят в индекс (в правильном порядке), а F4 нет. Может ли оракл взять данные в нужном порядке из индекса, а потом досортировать по F4, не пересортировывая всё с начала?
incremental sort ?
ну это в pg оно так называется. В документции оракла не нашёл такой фишки.
а в чем фишка то, в том что есть оптимизатор ? в оракле типа его нет ?
ну вот я пытаюсь выяснить, есть ли конкретно действие incremental sort. Я вполне допускаю что есть, но не вижу на это указаний в интернетах.
без запроса и плана?
ну план запроса надо смотреть, что бы увидеть )
если известно, что набор данных уже отсортирован по F1, F2, F3, то отсортировать дополнительно по F4 можно быстрее, чем делать сортировку по F1, F2, F3, F4 заново.
чуть выше написал - надо посмотреть план запроса. зы
------------------------------------------------------------ | Id | Operation | Name | Starts | E-Rows |E-Bytes|E-Temp | Cost (%CPU)| E-Time | Pstart| Pstop | A-Rows | A-Time | Buffers | Reads | Writes | OMem | 1Mem | O/1/M | Max-Tmp | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 2 | | | | 889K(100)| | | | 100 |00:00:13.20 | 1918K| 314K| 32736 | | | | | | 1 | FAST DUAL | | 2 | 1 | | | 2 (0)| 00:00:01 | | | 2 |00:00:00.01 | 0 | 0 | 0 | | | | | |* 2 | VIEW | | 2 | 50 | 254K| | 889K (1)| 00:00:35 | | | 100 |00:00:13.20 | 1918K| 314K| 32736 | | | | | |* 3 | COUNT STOPKEY | | 2 | | | | | | | | 100 |00:00:13.20 | 1918K| 314K| 32736 | | | | | | 4 | VIEW | | 2 | 1018K| 5058M| | 889K (1)| 00:00:35 | | | 100 |00:00:13.20 | 1918K| 314K| 32736 | | | | | ... 5 - (#keys=4) INTERNAL_FUNCTION("DBP_T1"."ACCOUNTID")[22], INTERNAL_FUNCTION("DBP_T1"."OPERDAY")[7], INTERNAL_FUNCTION("DBP_T1"."POSTINGSEQ")[22], "DBP_T1".ROWID[ROWID,10], "DBP_T1"."ID"[NUMBER,22], "DBP_T1"."TRANID"[NUMBER,22], [4000], "DBP_T4"."SEQ"[NUMBER,22], "DBP_T4"."ENTRYSEQ"[NUMBER,22], "DBP_T1"."ENTRYSEQ"[NUMBER,22], "DBP_T1"."ENTRYPARTSEQ"[NUMBER,22], "DBP_T1"."ENTRYKIND"[VARCHAR2,400], "DBP_T1"."FINOPERKIND"[VARCHAR2,400], "DBP_T1"."REGISTERROLE"[VARCHAR2,400], "DBP_T1"."CLASSIFICATION"[VARCHAR2,4000], "DBP_T1"."SIGN"[NUMBER,22], "DBP_T1"."AMT"[NUMBER,22], "DBP_T1"."BASEAMT"[NUMBER,22], "DBP_T2"."ID"[NUMBER,22], "DBP_T2"."KIND"[VARCHAR2,400], "DBP_T2"."LIFEPHASE"[VARCHAR2,200], "DBP_T3"."ID"[NUMBER,22], "DBP_T3"."NUMBER_"[VARCHAR2,200], "DBP_T4"."TRANID"[NUMBER,22]
Да, есть, и есть спец трассировка сортировки даже - 10032
Обсуждают сегодня