Yritin nähdä hakemistojen b-puutasot ja yllätyksekseni näen, että jotkut niistä on asetettu nolliksi.
SELECT index_name, blevel FROM user_indexes ORDER BY 2 desc;
Heidän nimensä alkaa ”SYS _” (alla oleva kuva). Joten oletan, että ne ovat järjestelmän luomia hakemistoja? Ehkä ensisijaisista avaimista? Kummallakin tavalla olen utelias miksi ne ovat tyhjiä. Ymmärrän, onko arvo 0, mikä tarkoittaa, että kaikki on lehtisolmuissa, ja tietojen saaminen vie vain yhden hypyn ainutlaatuiseen skannaukseen.
kommentit
Answer
Hakemistot, joiden nimen alku SYS_IL..
ovat LOB-hakemistoja.
BLEVEL
on B-puuhakemistojen ominaisuus eikä järkevää LOB-hakemistoille.
Vaikka keräätkin tilastoja, BLEVEL
tällaiselle indeksille jää tyhjäksi.
Vastaa
Kiitos @Balazs tiedoista.
Tutkin tätä ja näyttää siltä –
Lobi on yksinkertaisesti osoitin ja se osoittaa datan paloihin, jotka muodostavat kyseisen lohkon. Joten kun luot lob-sarakkeen, saat automaattisesti lob-indeksin, jotta lob-datan palat saadaan nopeammin ja segmentoidaan, joka pitää nämä datan palat.
Käytä seuraavia kyselyjä vahvistaaksesi saman –
SELECT index_name,INDEX_TYPE, blevel FROM user_indexes where blevel is null and index_name like "SYS_IL%%" ORDER BY 3 desc;
Yhdistettyjen segmenttien tarkasteleminen –
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%%" );
Voit poistaa tämän pudottamalla taulukon, jossa on lohkosarake tai itse sarake.
*_indexes
-dokumenttien sanat " Sarakkeiden nimet, joita seuraa tähti, täytetään vain, jos keräät indeksin tilastoja ANALYZE-käskyn tai DBMS_STATS-paketin avulla. " Luulen, että moottori ei ' t suorita kumpaakaan näistä komennoista kaikkia tai kaikkia järjestelmätaulukoiden hakemistoja vastaan.