Metrik kegunaan mencakup metrik yang membantu Anda memahami status pemanfaatan indeks dengan metrik, seperti konfigurasi indeks dan jumlah pemindaian indeks.
Nama metrik
Jenis data
Deskripsi
relid
OID
ID unik tabel yang berisi indeks vektor
indexrelid
OID
ID unik indeks vektor
schemaname
NAME
Nama skema yang memiliki indeks
relname
NAME
Nama tabel yang berisi indeks
indexrelname
NAME
Nama indeks
indextype
NAME
Jenis indeks. Nilai ini selalu ditetapkan ke scann
indexconfig
TEXT[]
Konfigurasi, seperti jumlah daun dan penguantisasi, yang ditentukan untuk indeks saat dibuat
indexsize
TEXT
Ukuran indeks
indexscan
BIGINT
Jumlah pemindaian indeks yang dimulai pada indeks
Metrik penyesuaian
Metrik penyesuaian memberikan insight tentang pengoptimalan indeks saat ini, sehingga Anda dapat menerapkan rekomendasi untuk performa kueri yang lebih cepat.
Nama metrik
Jenis data
Deskripsi
insertcount
BIGINT
Jumlah operasi penyisipan pada indeks. Metrik ini juga mencakup jumlah baris yang ada sebelum indeks dibuat.
updatecount
BIGINT
Jumlah operasi update pada indeks. Metrik ini tidak memperhitungkan update HOT apa pun.
deletecount
BIGINT
Jumlah operasi penghapusan pada indeks.
distribution
JSONB
Distribusi vektor di semua partisi untuk indeks.
Kolom berikut menunjukkan distribusi:
maximum (INT8): Jumlah maksimum vektor di semua partisi.
minimum (INT8): Jumlah minimum vektor di semua partisi.
average (FLOAT) : Jumlah rata-rata vektor di semua partisi.
outliers (INT8[]): Pencilan teratas di semua partisi. Nilai ini menampilkan 20 pencilan teratas.
Catatan: Karena karakteristik inheren algoritma pengelompokan K-means, akan selalu ada beberapa tingkat varians dalam distribusi vektor di seluruh partisi, bahkan saat indeks dibuat pertama kali.
distributionpercentile
JSONB
Distribusi indeks vektor membantu Anda memahami distribusi vektor di antara partisi indeks ScaNN. Partisi dibuat berdasarkan nilai num_leaves yang ditentukan selama pembuatan indeks.
Distribusi indeks vektor berisi bucket untuk persentil ke-10, 25, 50, 75, 90, 95, 99, dan ke-100. Setiap bucket berisi nilai berikut:
Jumlah vektor yang ada dalam partisi pada persentil yang ditentukan.
Jumlah partisi yang memiliki vektor dalam rentang yang ditentukan oleh persentil saat ini dan sebelumnya.
Catatan: Karena karakteristik inheren algoritma pengelompokan K-means, selalu ada beberapa tingkat varians dalam distribusi vektor di seluruh partisi, bahkan saat indeks dibuat pertama kali.
Rekomendasi penyesuaian berdasarkan metrik
Mutasi
Metrik insertcount, updatecount, dan deletecount secara bersamaan menunjukkan perubahan atau mutasi dalam vektor untuk indeks.
Indeks dibuat dengan jumlah vektor dan partisi tertentu. Saat operasi seperti penyisipan, pembaruan, atau penghapusan dilakukan pada indeks vektor, operasi tersebut hanya memengaruhi kumpulan partisi awal tempat vektor berada. Akibatnya, jumlah vektor di setiap partisi berfluktuasi dari waktu ke waktu, yang berpotensi memengaruhi perolehan, QPS, atau keduanya.
Jika Anda mengalami masalah kelambatan atau akurasi seperti QPS rendah atau recall buruk, dalam kueri penelusuran ANN Anda dari waktu ke waktu, pertimbangkan untuk meninjau metrik ini. Jumlah mutasi yang tinggi dibandingkan dengan jumlah total vektor dapat menunjukkan perlunya pengindeksan ulang.
Distribusi
Metrik distribution menampilkan distribusi vektor di semua partisi.
Saat Anda membuat indeks, indeks tersebut dibuat dengan jumlah vektor tertentu dan partisi tetap. Proses partisi dan distribusi berikutnya terjadi berdasarkan pertimbangan ini. Jika vektor tambahan ditambahkan, vektor tersebut akan dipartisi di antara partisi yang ada, sehingga menghasilkan distribusi yang berbeda dibandingkan dengan distribusi saat indeks dibuat. Karena distribusi akhir tidak mempertimbangkan semua vektor secara bersamaan, recall, QPS, atau keduanya mungkin terpengaruh.
Jika Anda mengamati penurunan bertahap dalam performa kueri penelusuran ANN, seperti waktu respons yang lebih lambat atau akurasi hasil yang berkurang (diukur dengan QPS atau perolehan), pertimbangkan untuk memeriksa metrik ini dan mengindeks ulang.
Persentil distribusi
Metrik distributionpercentile adalah distribusi indeks vektor dalam tampilan pg_stat_ann_indexes yang membantu Anda memahami distribusi vektor di antara partisi indeks ScaNN. Partisi dibuat berdasarkan nilai num_leaves yang ditentukan selama pembuatan indeks.
Saat Anda membuat indeks alloydb_scann pada kumpulan baris awal dengan menetapkan num_leaves, indeks dapat mengubah distribusi vektor di seluruh partisi karena operasi data (mutasi kecondongan), atau jumlah vektor dapat meningkat secara signifikan. Perubahan ini dapat menyebabkan penurunan QPS, perolehan, atau keduanya. Distribusi indeks vektor dapat memberi Anda sinyal jika mutasi menyebabkan perubahan dalam distribusi indeks. Informasi ini dapat membantu Anda menentukan apakah pengindeksan ulang diperlukan, atau apakah perubahan pada konfigurasi waktu penelusuran dapat membantu meningkatkan performa kueri.
Dalam indeks vektor, distribusi vektor di seluruh partisi jarang sekali merata sempurna. Ketidakseimbangan tersebut disebut sebagai distribusi tidak seragam. Tingkat ketidakseragaman tertentu sering kali diharapkan dan tidak berarti Anda perlu mengindeks ulang. Distribusi non-seragam memiliki karakteristik berikut:
Varians jumlah vektor rendah. Varians dapat dihitung sebagai
Jumlah partisi dengan 0 vektor rendah, dan mungkin kurang dari 30% partisi.
Variansi jumlah partisi rendah.
$ variance _{p} = abs(p_{num\_partitions} - num\_leaves * (p_{percentile} - p-1_{percentile})) $ di mana "p" adalah bucket distribusi indeks vektor.
Jumlah vektor pada persentil apa pun adalah
$< 8 x (\frac{num\_rows\ during\ index\ creation\ time}{ num\_leaves})$
Jika kondisi ini tidak terpenuhi, REINDEX mungkin diperlukan berdasarkan seberapa besar QPS dan perolehan terpengaruh.
Skenario berikut, meskipun kurang umum daripada distribusi tidak seragam, dapat terjadi:
Indeks Seragam Perkiraan: Jika sebagian besar partisi memiliki jumlah vektor bukan nol yang sama dan varians jumlah vektor rendah, maka ini adalah indeks seragam perkiraan. REINDEX diperlukan jika jumlah vektor dalam setiap partisi adalah $> 8 * vektor rata-rata$ pada index_creation_time.
Indeks Sparse: Indeks sparse juga terjadi jika > 50% partisi kosong. Misalnya, indeks jarang dibuat saat beberapa penghapusan terjadi pada tabel. Skenario ini menyebabkan vektor terkonsentrasi dalam sejumlah kecil partisi, yang meningkatkan jumlah vektor di setiap partisi. Jika hal ini terjadi, hapus indeks dan buat ulang.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-09-04 UTC."],[[["\u003cp\u003eThe \u003ccode\u003epg_stat_ann_indexes\u003c/code\u003e view provides metrics for vector indexes generated in AlloyDB Omni, accessible after installing the \u003ccode\u003ealloydb_scann\u003c/code\u003e extension.\u003c/p\u003e\n"],["\u003cp\u003eUsability metrics, such as \u003ccode\u003eindexconfig\u003c/code\u003e and \u003ccode\u003eindexscan\u003c/code\u003e, help to understand the current state of index utilization, including index configuration and scan frequency.\u003c/p\u003e\n"],["\u003cp\u003eTuning metrics, including \u003ccode\u003einsertcount\u003c/code\u003e, \u003ccode\u003eupdatecount\u003c/code\u003e, \u003ccode\u003edeletecount\u003c/code\u003e, and \u003ccode\u003edistribution\u003c/code\u003e, offer insights into index optimization and potential performance issues.\u003c/p\u003e\n"],["\u003cp\u003eHigh mutation rates, indicated by \u003ccode\u003einsertcount\u003c/code\u003e, \u003ccode\u003eupdatecount\u003c/code\u003e, and \u003ccode\u003edeletecount\u003c/code\u003e, or significant vector distribution variance, shown by the \u003ccode\u003edistribution\u003c/code\u003e metric, may suggest a need to reindex to improve query performance.\u003c/p\u003e\n"]]],[],null,["# Vector index metrics\n\nSelect a documentation version: 15.7.1keyboard_arrow_down\n\n- [Current (16.8.0)](/alloydb/omni/current/docs/reference/vector-index-metrics)\n- [16.8.0](/alloydb/omni/16.8.0/docs/reference/vector-index-metrics)\n- [16.3.0](/alloydb/omni/16.3.0/docs/reference/vector-index-metrics)\n- [15.12.0](/alloydb/omni/15.12.0/docs/reference/vector-index-metrics)\n- [15.7.1](/alloydb/omni/15.7.1/docs/reference/vector-index-metrics)\n- [15.7.0](/alloydb/omni/15.7.0/docs/reference/vector-index-metrics)\n\n\u003cbr /\u003e\n\nThis page lists the metrics related to the vector indexes that you generate in AlloyDB Omni. You can view these metrics using the `pg_stat_ann_indexes` view that is available when you install [the `alloydb_scann` extension](/alloydb/omni/15.7.1/docs/ai/store-index-query-vectors).\n\n\u003cbr /\u003e\n\nFor more information about viewing the metrics, see [View vector index metrics](/alloydb/omni/15.7.1/docs/ai/tune-indexes#vector-index-metrics).\n\nUsability metrics\n-----------------\n\nThe usability metrics include metrics that help you understand the state of\nindex utilization with metrics, such as index configuration and number of index\nscans.\n\nTuning metrics\n--------------\n\nTuning metrics provide insights into your current index optimization, allowing you to apply recommendations for faster query performance.\n\n### Tuning recommendation based on the metrics\n\nMutation\n: The `insertcount`, `updatecount`,\n and `deletecount` metrics together show the changes or mutations in\n the vector for the index.\n: The index is created with a specific number of vectors and partitions. When operations such as insert, update, or delete are performed on the vector index, it only affects the initial set of partitions where the vectors reside. Consequently, the number of vectors in each partition fluctuates over time, potentially impacting recall, QPS, or both.\n: If you encounter slowness or accuracy issues such as low QPS or poor recall, in your ANN search queries over time, then consider reviewing these metrics. A high number of mutations relative to the total number of vectors could indicate the need for reindexing.\n\nDistribution\n: The `distribution` metric shows the vector distributions across all partitions.\n: When you create an index, it is created with a specific number of vectors and fixed partitions. The partitioning process and subsequent distribution occurs based on this consideration. If additional vectors are added, they are partitioned among the existing partitions, resulting in a different distribution compared to the distribution when the index was created. Since the final distribution does not consider all vectors simultaneously, the recall, QPS, or both might be affected.\n: If you observe a gradual decline in the performance of your ANN search queries, such as slower response times or reduced accuracy in the results (measured by QPS or recall), then consider checking this metric and reindexing.\n\nDistribution percentile\n: The `distributionpercentile` metric, is a vector index distribution in the `pg_stat_ann_indexes` view that helps you understand the distribution of vectors between partitions of your ScaNN index. The partitions are created based on `num_leaves` value defined during index creation.\n: When you create an `alloydb_scann` index on the initial set of rows by setting `num_leaves`, the index can change the distribution of vectors across the partitions due to data operations (skew mutations), or the number of vectors might increase significantly. These changes can lead to degradation of QPS, recall, or both. The vector index distribution can give you signals if the mutation causes a change in the index distribution. This information can help you determine if a reindex is required, or if a change in search time configurations can help improve query performance.\n: In a vector index, the distribution of vectors across partitions is rarely perfectly even. Such imbalance is referred to as a *non-uniform distribution* . A certain degree of non-uniformity is often expected and doesn't mean you need to reindex. A non-uniform distribution has the following characteristics: \n\n - The variance of the number of vectors is low. Variance can be calculated as \n $(P100(num\\\\_vectors) - p10(num\\\\_vectors))\\*(\\\\frac{num\\\\_leaves}{total\\\\_num\\\\_row})$\n - The number of partitions with 0 vectors is low, and might be less than 30% of partitions.\n - The variance of the number of partitions is low. \n $ variance _{p} = abs(p_{num\\\\_partitions} - num\\\\_leaves \\* (p_{percentile} - p-1_{percentile})) $ where \"p\" is a vector index distribution bucket.\n - The number of vectors at any percentile is \n $\\\u003c 8 x (\\\\frac{num\\\\_rows\\\\ during\\\\ index\\\\ creation\\\\ time}{ num\\\\_leaves})$\n\n When these conditions aren't satisfied, `REINDEX` might be required based on how much QPS and recall are affected.\n: The following scenarios, while less common than non-uniform distribution, can occur: \n\n - **Approximate Uniform Index:** When most of the partitions have the same number of non-zero vectors and the variance of the number of vectors is low, it is an approximate uniform index. `REINDEX` is required if the number vectors in each partition are $\\\u003e 8 \\* average vector$ at `index_creation_time`.\n - **Sparse Index:** A sparse index also occurs where \\\u003e 50% of the partitions are empty. For example, sparse index is created when multiple deletions occur on a table. This scenario causes the vectors to be concentrated in a small number of partitions, which increases the number of vectors in each partition. When this happens, drop the index and recreate it."]]