Name Null Type
-------- -------- ---------
ID NOT NULL NUMBER(4)
GROUP_ID NUMBER(4)
TEXT CLOB
Es gibt einen btree Index auf group_id
. Hier ist, wie viele Zeilen jede group_id
hat und der entsprechende Prozentsatz:
GROUP_ID COUNT PCT
---------------------- ---------------------- ----------------------
1 1 1
2 2 1
3 4 3
4 8 6
5 16 12
6 32 24
7 64 47
8 9 7
Ich habe das gemacht
EXEC DBMS_STATS.GATHER_SCHEMA_STATS(ownname=>'TEST', cascade=>true);
Was, wenn ich es richtig verstehe, Statistiken für den Optimierer sammelt.
Ich erinnere mich, dass Oracle den Index nicht verwendet und stattdessen einen vollständigen Tabellenscan durchführt, wenn mehr als 5% aller Zeilen abgerufen werden. Als ich diese Abfrage ausführte, wurde jedoch erst mit group_id
7 Jahren ein FTS ausgeführt , das 47% aller Zeilen enthält.
Soll das so sein?
SELECT * FROM my_table WHERE group_id = X