Tampilan HOLOGRES_STATISTIC.HG_STATS_MISSING mencantumkan tabel-tabel di database saat ini yang tidak memiliki statistik.
Anda dapat menggunakan tampilan ini untuk:
Menampilkan tabel yang tidak memiliki statistik. Ketidakhadiran statistik dapat menyebabkan pengoptimal menghasilkan rencana eksekusi yang buruk, seperti urutan join yang salah yang memicu shuffling tabel besar, kueri lambat, atau error kehabisan memori (OOM).
Menampilkan tabel spesifik yang sesuai dengan metrik Stats Miss Table Num by DB dalam pemantauan Hologres.
Menjalankan operasi ANALYZE manual atau tindakan governance lainnya secara selektif pada tabel yang tidak memiliki statistik.
Batasan
Instans Hologres Anda harus menjalankan versi V2.2.15 atau lebih baru.
Kueri hanya mengembalikan tabel dalam skema yang memiliki izin SCHEMA USAGE atau lebih tinggi bagi pengguna yang menjalankan kueri tersebut.
Jenis tabel selain tabel internal Hologres, tabel partisi, tabel eksternal, dan tampilan yang di-materialisasi tidak ditampilkan (dan juga tidak termasuk dalam metrik tersebut).
Bidang
Tabel berikut menjelaskan bidang-bidang dalam tampilan HOLOGRES_STATISTIC.HG_STATS_MISSING.
Bidang | Tipe data | Deskripsi |
schemaname | TEXT | Nama skema. |
tablename | TEXT | Nama tabel. |
nattrs | INTEGER | Jumlah kolom. |
tablekind | TEXT | Jenis tabel (misalnya, table atau foreign_table). |
fdwname | TEXT | Nama Foreign Data Wrapper (FDW). Diisi hanya untuk tabel eksternal. |
autovacuum_enabled | TEXT | Apakah Auto Analyze diaktifkan untuk tabel tersebut. Catatan Hanya tersedia di V3.1. |
reason | TEXT | Alasan mengapa statistik tidak tersedia. Gunakan bidang ini untuk menentukan tindakan selanjutnya. Catatan Hanya tersedia di V3.1. |
alasan: Klasifikasi alasan yang hilang
Alasan | Kategori | Deskripsi | Tindakan yang disarankan |
| Statistik kolom tidak tersedia | Statistik (seperti MCV dan histogram) belum dikumpulkan untuk kolom yang ditentukan. | Jalankan pernyataan |
| Statistik kolom tidak tersedia | Penghitung HyperLogLog (HLL) tidak tersedia untuk kolom yang ditentukan. HLL digunakan untuk memperkirakan jumlah nilai unik (NDV) dari tabel anak partisi dan memainkan peran penting dalam penggabungan statistik untuk tabel partisi. | Jalankan pernyataan |
| Statistik tabel partisi logis tidak dapat digabungkan | Tabel partisi logis memiliki partisi anak yang statistiknya tidak dapat digabungkan. Hal ini mungkin disebabkan oleh statistik yang tidak tersedia atau tidak kompatibel pada beberapa partisi anak. | Jalankan pernyataan |
| Pengumpulan otomatis dinonaktifkan secara eksplisit | AUTO ANALYZE telah dinonaktifkan secara manual untuk tabel tersebut, sehingga statistik tidak dikumpulkan secara otomatis. | Untuk mengaktifkan kembali maintenance statistik otomatis, aktifkan AUTO ANALYZE di tingkat tabel: |
| Ketidaksesuaian tipe | Tipe data dari statistik MCV (Most Common Values) atau histogram yang ada untuk kolom yang ditentukan tidak sesuai dengan tipe data kolom saat ini. Hal ini biasanya terjadi setelah tipe kolom diubah. | Jalankan kembali pernyataan |
| Eksepsi tingkat tabel | Tabel telah dihapus atau menjadi tidak dapat diakses selama pemeriksaan statistik. | Tidak perlu tindakan. Tabel tersebut sudah tidak ada dan kueri selanjutnya secara otomatis mengabaikannya. |
Contoh
Pada daftar instans, klik ID instans untuk membuka halaman detail instans. Klik Group Name, pilih Binlog and Analyze, lalu lihat Stats Miss Table Num by DB.
Ambil salah satu database sebagai contoh untuk melihat tabel-tabel yang tidak memiliki statistik di database tersebut.
SELECT * FROM hologres_statistic.hg_stats_missing;Contoh output:
schemaname | tablename | nattrs | tablekind | fdwname | autovacuum_enabled | reason
------------------------------------+----------------------------------+--------+---------------+----------+--------------------+------------------------------
hologres_foreign_dataset_tpch_100g | odps_customer_100g | 8 | foreign table | odps_fdw | t | column "c_custkey" missing
hologres_foreign_dataset_tpch_100g | odps_nation_100g | 4 | foreign table | odps_fdw | t | column "n_nationkey" missing
hologres_foreign_dataset_tpch_100g | odps_orders_100g | 9 | foreign table | odps_fdw | t | column "o_orderkey" missing
hologres_foreign_dataset_tpch_100g | odps_part_100g | 9 | foreign table | odps_fdw | t | column "p_partkey" missing
hologres_foreign_dataset_tpch_100g | odps_lineitem_100g | 16 | foreign table | odps_fdw | t | column "l_orderkey" missing
public | spatialxxxxx | 5 | table | | t |
public | smtxxx | 4 | foreign table | oss_fdw | t |
public | smtxxxxx | 4 | foreign table | oss_fdw | t | Anda kemudian dapat menjalankan ANALYZE secara manual pada tabel yang tidak memiliki statistik.
ANALYZE spatialxxxxx;Kembali ke halaman pemantauan. Nilai metrik Stats Miss Table Num by DB berkurang.
FAQ
Q: Mengapa jumlah baris yang dikembalikan oleh HG_STATS_MISSING melebihi jumlah yang ditampilkan oleh metrik pemantauan?
Kedua jumlah tersebut menggunakan kriteria yang berbeda.
Ketidakhadiran statistik terbagi menjadi dua jenis:
Statistik jumlah baris dan statistik kolom sama-sama tidak tersedia.
Statistik jumlah baris tersedia dan dapat digunakan untuk estimasi dasar dalam rencana kueri, tetapi statistik kolom detail tidak tersedia (yang hanya memengaruhi akurasi estimasi).
Jumlah kasus jenis (2) > jumlah kasus jenis (1).
Seperti dijelaskan dalam topik ini, jumlah baris yang dikembalikan oleh HG_STATS_MISSING mencakup kasus di mana statistik kolom tidak tersedia, yang sama dengan jumlah kasus jenis (2).
Metrik pemantauan Stats Miss Table Num by DB hanya menampilkan tabel yang statistiknya sama sekali tidak tersedia, yang sama dengan jumlah kasus jenis (1).
Oleh karena itu, jumlah baris yang dikembalikan oleh HG_STATS_MISSING >= nilai metrik Stats Miss Table Num by DB.