Próbáltam megnézni az indexek b-fa szintjét, és meglepetésemre látom, hogy némelyikük nullára van állítva.
SELECT index_name, blevel FROM user_indexes ORDER BY 2 desc;
Nevük “SYS _” -vel kezdődik (az alábbi kép csatolva). Tehát feltételezem, hogy ezek rendszer által generált indexek? Esetleg elsődleges kulcsok? Akárhogy is vagyok kíváncsi arra, hogy miért semmisek. Megértem, ha az érték 0, ami azt jelenti, hogy minden levélcsomópontokban van, és csak 1 ugrás kell az egyedi vizsgálathoz az adatok megszerzéséhez.
Megjegyzések
Answer
Indexek, amelyek A név kezdete SYS_IL..
LOB indexek.
BLEVEL
a B-fa indexek tulajdonsága, és nem van értelme a LOB indexeknek.
Még akkor is, ha statisztikákat gyűjt, az BLEVEL
egy ilyen index számára null marad.
Válasz
Köszönöm @Balazs az információkat.
Vizsgált ezen a környéken, és úgy néz ki –
A lebeny egyszerűen mutató, és olyan adatrészekre mutat, amelyek létrehozzák ezt a lebontást. Tehát amikor létrehoz egy lob oszlopot, akkor automatikusan kap egy lob indexet, így a lob adatcsomók gyorsabban lekérhetők, és az adatok darabjait megtartó szegmentálhatók.
Használja a következő lekérdezéseket ugyanezek ellenőrzésére –
SELECT index_name,INDEX_TYPE, blevel FROM user_indexes where blevel is null and index_name like "SYS_IL%%" ORDER BY 3 desc;
A társított szegmensek megtekintéséhez –
select segment_name, segment_type, tablespace_name, bytes, max_extents from user_segments where segment_name in ( SELECT index_name FROM user_indexes where blevel is null and index_name like "SYS_IL%%" );
Ezt törölheti úgy, hogy eldobja azt a táblázatot, amelynek lob oszlopa vagy maga az oszlop.
*_indexes
dokumentumok jó néhány statisztikai oszlopában (beleértve az elmosódást is) a " Az oszlopnevek, amelyeket csillag követ, csak akkor kerülnek feltöltésre, ha statisztikákat gyűjt az indexről az ANALYZE utasítás vagy a DBMS_STATS csomag használatával. " Gondolom, a motor nem ' nem hajtja végre ezeknek a parancsoknak egyikét vagy az összes rendszertábla-indexet …