Cześć. Mam zapytanie do bazy oracle(wersja 11.2), które ma zwrócić posortowany zbiór danych.
Tabela:
CREATE TABLE tabela1
(
kolumna1 DATE NOT NULL,
kolumna2 VARCHAR2(50 CHAR) NOT NULL,
kolumna3 VARCHAR2(50 CHAR) NOT NULL,
kolumna4 VARCHAR2(50 CHAR) NOT NULL,
....
kolumna10 VARCHAR2(50 CHAR)
)
tabela jest partycjonowana po 'kolumna1' oraz subpartycjonowana po 'kolumna2', posiada indeks lokalny na zestawie kolumn 'kolumna1, kolumna2, kolumna3, kolumna4'
Zapytanie:
SELECT kolumna1, kolumna2, kolumna3, kolumna4
FROM tabela1
WHERE kolumna1 = &data1
AND kolumna2 = &wartosc1
ORDER BY kolumna1, kolumna2, kolumna3
Plan zapytania jaki proponuje optymalizator:
Kwestia której nie rozumiem to co robi w planie zapytania 'sort order by'. Spodziewałem że wystarczy tu odczyt danych z bloków indeksu, bez dodatkowego sortowania. Nie udało mi się też wymusić tego na optymalizatorze.
Będę wdzięczny jeśli ktoś mi to rozjaśni.