pg_stat_ann_indexes disponibile quando installi l'estensione alloydb_scann.
Per ulteriori informazioni sulla visualizzazione delle metriche, consulta Visualizzare le metriche degli indici vettoriali.
Metriche di usabilità
Le metriche di usabilità includono metriche che ti aiutano a comprendere lo stato di utilizzo dell'indice con metriche come la configurazione dell'indice e il numero di scansioni dell'indice.
| Nome metrica | Tipo di dati | Descrizione |
|---|---|---|
relid |
OID |
Identificatore univoco della tabella che contiene l'indice vettoriale |
indexrelid |
OID |
Identificatore univoco dell'indice vettoriale |
schemaname |
NAME |
Nome dello schema proprietario dell'indice |
relname |
NAME |
Nome della tabella che contiene l'indice |
indexrelname |
NAME |
Nome dell'indice |
indextype |
NAME |
Tipo di indice. Questo valore è sempre impostato su alloydb_scann |
indexconfig |
TEXT[] |
Configurazione, ad esempio conteggio delle foglie e quantizzatore, definita per l'indice al momento della creazione |
indexsize |
TEXT |
Dimensione dell'indice |
indexscan |
BIGINT |
Numero di scansioni dell'indice avviate sull'indice |
partitioncount |
BIGINT |
Numero di partizioni (nodi foglia) nell'albero. |
Metriche di ottimizzazione
Le metriche di ottimizzazione forniscono informazioni sull'ottimizzazione corrente dell'indice, consentendoti di applicare i suggerimenti per migliorare le prestazioni delle query.
| Nome metrica | Tipo di dati | Descrizione |
|---|---|---|
insertcount |
BIGINT |
Numero di operazioni di inserimento sull'indice. Questa metrica include anche il numero di righe esistenti prima della creazione dell'indice. |
updatecount |
BIGINT |
Numero di operazioni di aggiornamento sull'indice. Questa metrica non tiene conto degli aggiornamenti HOT. |
deletecount |
BIGINT |
Numero di operazioni di eliminazione sull'indice. |
distribution |
JSONB |
Distribuzioni vettoriali in tutte le partizioni dell'indice. I seguenti campi mostrano la distribuzione:
Nota: a causa delle caratteristiche intrinseche dell'algoritmo di clustering K-means, ci sarà sempre un certo grado di varianza nella distribuzione dei vettori tra le partizioni, anche quando l'indice viene creato inizialmente. |
Suggerimento di ottimizzazione basato sulle metriche
- Mutazione
- Le metriche
insertcount,updatecount, edeletecountmostrano insieme le modifiche o le mutazioni del vettore per l'indice. - L'indice viene creato con un numero specifico di vettori e partizioni. Quando vengono eseguite operazioni come inserimento, aggiornamento o eliminazione sull'indice vettoriale, queste influiscono solo sul set iniziale di partizioni in cui risiedono i vettori. Di conseguenza, il numero di vettori in ogni partizione fluttua nel tempo, il che può influire sul richiamo, sul QPS o su entrambi.
- Se nel tempo riscontri problemi di lentezza o accuratezza, ad esempio QPS basso o richiamo insufficiente, nelle query di ricerca ANN, valuta la possibilità di esaminare queste metriche. Un numero elevato di mutazioni rispetto al numero totale di vettori potrebbe indicare la necessità di reindicizzare.
- Distribuzione
- La metrica
distributionmostra le distribuzioni vettoriali in tutte le partizioni. - Quando crei un indice, questo viene creato con un numero specifico di vettori e partizioni fisse. Il processo di partizionamento e la distribuzione successiva si basano su questa considerazione. Se vengono aggiunti altri vettori, questi vengono partizionati tra le partizioni esistenti, con una distribuzione diversa rispetto a quella al momento della creazione dell'indice. Poiché la distribuzione finale non considera tutti i vettori contemporaneamente, il richiamo, il QPS o entrambi potrebbero essere interessati.
- Se noti un calo graduale del rendimento delle query di ricerca ANN, ad esempio tempi di risposta più lenti o accuratezza ridotta nei risultati (misurata in base a QPS o richiamo), valuta la possibilità di controllare questa metrica e di reindicizzare.