pg_stat_ann_indexes, que fica disponível quando você instala a extensão alloydb_scann.
Para mais informações sobre como visualizar as métricas, consulte Visualizar métricas de índice vetorial.
Métricas de usabilidade
As métricas de usabilidade incluem métricas que ajudam a entender o estado de utilização do índice, como a configuração do índice e o número de verificações de índice.
| Nome da métrica | Tipo de dado | Descrição |
|---|---|---|
relid |
OID |
Identificador exclusivo da tabela que contém o índice vetorial |
indexrelid |
OID |
Identificador exclusivo do índice vetorial |
schemaname |
NAME |
Nome do esquema proprietário do índice |
relname |
NAME |
Nome da tabela que contém o índice |
indexrelname |
NAME |
Nome do índice |
indextype |
NAME |
Tipo do índice. Esse valor é sempre definido como alloydb_scann |
indexconfig |
TEXT[] |
Configuração, como contagem de folhas e quantizador, definida para o índice quando ele foi criado |
indexsize |
TEXT |
Tamanho do índice |
indexscan |
BIGINT |
Número de verificações de índice iniciadas no índice |
partitioncount |
BIGINT |
Número de partições (nós folha) na árvore. |
Métricas de ajuste
As métricas de ajuste fornecem insights sobre a otimização atual do índice, permitindo que você aplique recomendações para um desempenho de consulta mais rápido.
| Nome da métrica | Tipo de dado | Descrição |
|---|---|---|
insertcount |
BIGINT |
Número de operações de inserção no índice. Essa métrica também inclui o número de linhas que existiam antes da criação do índice. |
updatecount |
BIGINT |
Número de operações de atualização no índice. Essa métrica não considera nenhuma atualização HOT. |
deletecount |
BIGINT |
Número de operações de exclusão no índice. |
distribution |
JSONB |
Distribuições de vetores em todas as partições do índice. Os campos a seguir mostram a distribuição:
Observação:devido às características inerentes do algoritmo de clustering K-means, sempre haverá algum grau de variância na distribuição de vetores entre as partições, mesmo quando o índice for criado inicialmente. |
Recomendação de ajuste com base nas métricas
- Mutação
- As métricas
insertcount,updatecount, edeletecountmostram juntas as mudanças ou mutações no vetor do índice. - O índice é criado com um número específico de vetores e partições. Quando operações como inserção, atualização ou exclusão são realizadas no índice vetorial, elas afetam apenas o conjunto inicial de partições em que os vetores residem. Consequentemente, o número de vetores em cada partição flutua ao longo do tempo, o que pode afetar a recuperação, o QPS ou ambos.
- Se você encontrar problemas de lentidão ou acurácia, como QPS baixo ou recall ruim, nas consultas de pesquisa de ANN ao longo do tempo, considere revisar essas métricas. Um grande número de mutações em relação ao número total de vetores pode indicar a necessidade de reindexação.
- Distribuição
- A métrica
distributionmostra as distribuições de vetores em todas as partições. - Ao criar um índice, ele é criado com um número específico de vetores e partições fixas. O processo de particionamento e a distribuição subsequente ocorrem com base nessa consideração. Se vetores adicionais forem adicionados, eles serão particionados entre as partições atuais, resultando em uma distribuição diferente em comparação com a distribuição quando o índice foi criado. Como a distribuição final não considera todos os vetores simultaneamente, a recuperação, o QPS ou ambos podem ser afetados.
- Se você observar um declínio gradual no desempenho das consultas de pesquisa de ANN, como tempos de resposta mais lentos ou acurácia reduzida nos resultados (medida por QPS ou recall), considere verificar essa métrica e reindexar.