ORACLE tablo istatistikleri, sütun istatistikleri, dizin istatistikleri nasıl toplanır

Genel Bakış

Belirli ifadelerin performansını analiz ettiğimizde, bazı bilgileri analiz edeceğiz. Tablolar, sütunlar, dizinler, histogramlar vb. Gibi, bugün esas olarak tabloların, sütunların ve dizinlerin istatistiksel bilgilerinin toplanması ve analizi hakkında konuşuyoruz.

odak noktası

Tablo istatistikleri:

--Sıra sayısı, blok sayısı, ortalama satır uzunluğu;

--all_tables: NUM_ROWS, BLOCKS, AVG_ROW_LEN;

Sütun istatistikleri:

-Sütundaki benzersiz değerlerin (NDV) sayısı, NULL değerlerin sayısı ve veri dağılımı;

--DBA_TAB_COLUMNS: NUM_DISTINCT, NUM_NULLS, HISTOGRAM;

Dizin istatistikleri:

- Yaprak bloklarının sayısı, derecesi, kümeleme faktörü;

--DBA_INDEXES: LEAF_BLOCKS, CLUSTERING_FACTOR, BLEVEL;

Bir, tablo istatistikleri

1. Tablo istatistiklerini toplayın

Sözdizimi aşağıdaki gibidir:

BAŞLA DBMS_STATS.GATHER_TABLE_STATS (OWNNAME = > '', TABNAME = > '', ESTIMATE_PERCENT = > 100, METHOD_OPT = > 'tüm sütun boyutları için çarpık', CASCADE = > DOĞRU); SON;

2. Tablonun istatistiklerini görüntülemek için dba_tab_statistics'i kullanın.

SAHİBİ SEÇİN, TABLO İSMİ, PARTITION_NAME, NESNE TÜRÜ, NUM_ROWS, BLOKLAR, EMPTY_BLOCKS, AVG_SPACE, CHAIN_CNT, AVG_ROW_LEN, to_char (LAST_ANALYZED, 'yyyy-aa-gg ss24: mi: ss') LAST_ANALYZED, USER_STATS DBA_TAB_STATISTICS'TEN NEREDE SAHİBİ = 'NWPP_TEST' VE TABLE_NAME = 'T_GG_XXGL_TZGG';

Buradaki bloklar, yüksek su işaretinin altındaki veri bloklarının sayısıdır ve empty_blocks, yüksek su işaretinin üstündeki veri bloklarının sayısıdır.

Dbms_stats EMPTY_BLOCKS, AVG_SPACE, CHAIN_CNT hesaplamaz. ANALYZE'ı şarj etmek için kullanabilirsiniz (ANALİZ TABLOSU < tabname > BİLGİSAYAR İSTATİSTİKLERİ)

Chain_cnt alanı, satır geçişinin ve satır bağlantılarının sayısını gösterir.

iki , Sütun istatistikleri

DBA_TAB_COL_STATISTICS ile sütun istatistiklerini görüntüleyin

COLUMN_NAME SEÇİN, NUM_DISTINCT, DÜŞÜK DEĞER, YÜKSEK DEĞER, YOĞUNLUK, NUM_NULLS, AVG_COL_LEN, HİSTOGRAM, NUM_BUCKETS DBA_TAB_COL_STATISTICS'TEN WHERE TABLE_NAME = 'TABLE_NAME';

İstatistikleri açıklayın:

NUM_DISTINCT: Bu sütundaki benzersiz değerlerin sayısı.

LOW_VALUE: Sütunun minimum değeri. Dahili depolama biçimi olarak görüntüleyin. Dize sütunları için yalnızca ilk 32 bayt saklanır.

HIGH_VALUE: Sütunun maksimum değeri. Dahili depolama biçimi olarak görüntüleyin. Dize sütunları için yalnızca ilk 32 bayt saklanır.

YOĞUNLUK: 0 ile 1 arasında bir ondalık sayı. 0'a yakın, bu sütun için filtreleme işleminin çoğu satırı kaldırabileceği anlamına gelir. 1'e yakın, sütun için filtreleme işleminin hiçbir etkisi olmadığı anlamına gelir. Histogram yoksa DENSITY = 1 / NUM_DISTINCT.

HİSTOGRAM: Histogram bilgisi olup olmadığını ve varsa ne tür olduğunu belirtin. SIKLIK, frekans türünü temsil eder, YÜKSEKLİK DENGELİ ortalama dağıtım türünü temsil eder; değilse, HİÇBİRİ'dir.

NUM_BUCKETS: Histogramdaki grup sayısı. Bir araya getirilen benzer değerler grubunu temsil eder. Histogram en az bir bölümden oluşur. Histogram yoksa 1'dir ve maksimum bölüm sayısı 254'tür.

Buradaki LOW_VALUE ve HIGH_VALUE değerlerinin ikisi de dahili formatlardır, bu nedenle okunabilir bir formata dönüştürülmeleri gerekir. İki yöntem vardır.

1) araç takımı utl_raw tarafından sağlanan cast_to_binary_double, cast_to_binary_float, cast_to_binary_integer, cast_to_number, cast_to_nvarchar2, cast_to_raw ve cast_to_varchar2 işlevlerini kullanın. Bu işlevler, dahili depolama formatını gerçek değerlere dönüştürür.

UTL_RAW.CAST_TO_NUMBER (LOW_VALUE), UTL_RAW.CAST_TO_NUMBER (HIGH_VALUE) SEÇİN DBA_TAB_COL_STATISTICS'TEN WHERE TABLE_NAME = 'T_GG_XXGL_TZGG' AND COLUMN_NAME = 'C_DEL_DATE';

2) dbms_stats tarafından sağlanan convert_raw_value, convert_raw_value_nvarchar ve convert_raw_value_rowid prosedürlerini kullanın. Bu prosedür doğrudan SQL ifadelerinde kullanılamaz ve genellikle yalnızca PL / SQL programlarında kullanılır ve nispeten nadiren kullanılır.

BİLDİRMEK L_LOW_VALUE DBA_TAB_COL_STATISTICS.LOW_VALUE% TYPE; L_HIGH_VALUE DBA_TAB_COL_STATISTICS.HIGH_VALUE% TYPE; L_VAL1 T.VAL1% TYPE; BAŞLA LOW_VALUE, HIGH_VALUE SEÇİN INTO L_LOW_VALUE, L_HIGH_VALUE DBA_TAB_COL_STATISTICS'TEN WHERE TABLE_NAME = 'T_GG_XXGL_TZGG' AND COLUMN_NAME = 'C_DEL_DATE'; DBMS_STATS.CONVERT_RAW_VALUE (L_LOW_VALUE, L_VAL1); DBMS_OUTPUT.PUT_LINE ('düşük_değer:' || L_VAL1); DBMS_STATS.CONVERT_RAW_VALUE (L_HIGH_VALUE, L_VAL1); DBMS_OUTPUT.PUT_LINE ('yüksek_değer:' || L_VAL1); SON; /

Üç, dizin istatistikleri

1. Dizin istatistiklerini toplayın

Sözdizimi aşağıdaki gibidir:

BAŞLA SYS.DBMS_STATS.GATHER_INDEX_STATS (OwnName = > 'GZCSS_GZBH', IndName = > 'PK_T_GG_XXGL_TZGG', Estimate_Percent = > 10, Derece = > SYS.DBMS_STATS.DEFAULT_DEGREE, No_Invalidate = > YANLIŞ); SON;

2. Dizin istatistiklerini görüntüleyin

IND.INDEX_NAME seçin, IND.TABLE_NAME, IND.partition_name, IND.leaf_blocks, IND.distinct_keys, IND.num_rows, IND.last_analyzed, IND.user_stats DBA_IND_STATISTICS IND'den WHERE IND.OWNER = 'GZCSS_GZBH' VE IND.index_name = 'PK_T_GG_XXGL_TZGG'

Aslında, optimize edicinin istatistiksel kapsamı hala sistemin istatistiksel bilgilerine sahiptir, ancak odak yukarıdaki üçü üzerindedir.Ayrıca zaman ayırıp ayırmadığınızı da test edebilirsiniz.

DBA hakkında daha fazlasını daha sonra paylaşacağım, ilgilenen arkadaşlar buna dikkat edebilir!

Jailbreak eklentisi: iPhone'un Nexus program çekmecesi işlevine sahip olmasına izin verin!
önceki
Wang Baoqiang ödülü aynı sahnede Xiaolong'a verdi. İkisi çocukken sınıf arkadaşıydı. Baoqiang şimdi uzmanlığını kaybetti.
Sonraki
"Otonom sürüş testi aracı güvenlik görevlisinin" yattığını ve para kazandığını düşünüyor musunuz, gerçek şu ki ...
Elektrikli ısıtma çok pratiktir, ancak iyi kullanılmazsa tehlikelidir! Sadece yap!
Kuzeybatı Çin'deki ilk itfaiye treni resmen fırlatıldı!
Nihayet sizi bekliyor. RMB Düzenlemesinin 70. Yıl Sergisi'nde beş set RMB sergisi yer alacak.
Oracle nesnesi istatistik bilgilerinin kilitlenmesine yönelik çözüm (ORA-20005 / ORA-38029)
Liu Tao, kızıyla nadiren Wang Ke'nin bir fotoğrafını paylaştı. Baba ve kızı "kavga" oynadı ve kızın küçük hareketleri çok sıcaktı.
Beishangguang nihayet kurtuldu! Mobike paylaşılan bir elektrikli otomobil başlattı, ancak netizenler sorgulamaya devam etti
Bir "kupa" ile doğan yeni Touareg artık gerekli değil mi?
Termokupl yapısı, işlevi ve sınıflandırılması! Ve bir bağlantı kutusu nasıl seçilir? Sistem termokupl'u açıklıyor!
Pratik komut dosyası - geniş alanlar ve geniş alanlar olmadan tabloların kapladığı depolama alanını görüntüleyin
Jiang Jinfu'nun aile içi şiddet olayı çözüldü ve arkadaşlarıyla akşam yemeği yiyormuş gibi görünüyordu ve kafası biraz bozuktu!
Apple iPhone 16G'nin belleği yetersizse ne yapmalı? 5. Madde temizlemenin en güçlü yoludur!
To Top