Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
De sys.dm_db_vector_indexes dynamische beheerweergave geeft realtime informatie terug over de gezondheid van de vectorindex en het onderhoud van de achtergrond. Gebruik deze weergave om DiskANN-grafieken te monitoren en vectorindexen te identificeren die mogelijk aandacht vereisen.
Transact-SQL syntaxis-conventies
| Kolomnaam | Gegevenstype | Beschrijving |
|---|---|---|
object_id |
int | Object-ID van de tabel die de vectorindex bevat. |
index_id |
int | ID van de vectorindex. |
graph_catchup_pending_percent |
decimal(10,2) | Geschatte procentuele wijzigingen die wachten om in de DiskANN-grafiek te worden opgenomen. De waarde beweegt richting nul terwijl achtergrondonderhoud de in behandeling staande wijzigingen verwerkt. De waarde kan zijn NULL als er geen graaf-inhalingstaak is uitgevoerd. |
quantized_keys_used_percent |
decimal(10,2) | Percentage van de gekwantiseerde sleutelruimte dat door de vectorindex wordt gebruikt. |
last_background_task_execution_time |
datetime2 | Tijd wanneer de meest recente achtergrondonderhoudstaak werd uitgevoerd.
NULL als er geen achtergrondtaak is uitgevoerd. |
last_background_task_succeeded |
bit | Successtatus van de meest recente achtergrondonderhoudstaak.
1 geeft succes aan, 0 duidt falen aan en NULL geeft aan dat er geen achtergrondtaak is uitgevoerd. |
last_background_task_duration_seconds |
bigint | Duur van de meest recente achtergrondonderhoudstaak, in enkele seconden.
NULL als er geen achtergrondtaak is uitgevoerd. |
last_background_task_processed_inserts |
bigint | Aantal inserts verwerkt door de meest recente achtergrondonderhoudstaak.
NULL als er geen achtergrondtaak is uitgevoerd. |
last_background_task_processed_deletes |
bigint | Aantal verwijderingen verwerkt door de meest recente achtergrondonderhoudstaak.
NULL als er geen achtergrondtaak is uitgevoerd. |
last_background_task_error_message |
nvarchar(max) | Foutmelding gemeld door de meest recente achtergrondonderhoudstaak.
NULL als er geen fout is gemeld of er geen achtergrondtaak is uitgevoerd. |
Opmerkingen
Deze weergave geeft één rij terug voor elke vectorindex in de huidige database.
Vectorindexen gebruiken asynchrone achtergrondonderhoud om datawijzigingen, waaronder inserts, updates en deletes, in de DiskANN-graaf op te nemen. De graph_catchup_pending_percent kolom toont het geschatte percentage veranderingen dat nog wacht om in de grafiek te worden opgenomen.
Beschikbaarheid van functies
Het vectordatatype en de vectorfuncties zijn algemeen beschikbaar in SQL Server 2025, Azure SQL Database, Azure SQL Managed Instance en SQL database in Fabric.
Vectorindexen zijn over het algemeen beschikbaar in Azure SQL Database, SQL-databases in Fabric en Azure SQL Managed Instance geconfigureerd met het Always-up-to-date-updatebeleid.
Vectorindexen zijn previewfuncties in SQL Server 2025 en Azure SQL Managed Instance die zijn geconfigureerd met het SQL Server 2025 updatebeleid.
Analyseer graph_catchup_pending_percent
De graph_catchup_pending_percent kolom geeft het geschatte percentage datawijzigingen aan die nog niet in de DiskANN-grafiek zijn opgenomen.
Wanneer je rijen invoegt, bijwerkt of verwijdert in een tabel met een vectorindex, worden de wijzigingen niet direct in de grafiek opgenomen. De wijzigingen worden asynchroon in de wachtrij geplaatst en verwerkt door een achtergrondonderhoudstaak.
Een tijdelijke niet-nul waarde na datawijzigingen wordt verwacht. Het percentage beweegt richting nul terwijl achtergrondonderhoud wachtende wijzigingen in de grafiek opneemt.
Een waarde van nul geeft aan dat het grafonderhoud is ingehaald. Een NULL-waarde kan aangeven dat er nog geen graaf-inhalingstaak is uitgevoerd.
Invloed op VECTOR_SEARCH query's
VECTOR_SEARCH blijft actief terwijl de Graph Catch-up gaande is. Het gebruikt de huidige DiskANN-grafiek samen met wijzigingen die nog niet volledig in de grafiek zijn opgenomen.
Dit gedrag betekent:
-
VECTOR_SEARCHKan nog steeds recent ingevoegde of bijgewerkte rijen overwegen. - Rijen die niet volledig in de grafiek zijn opgenomen, kunnen niet volledig profiteren van grafieknavigatie.
- Zoekprestaties of terugroepacties kunnen worden beïnvloed terwijl een grote achterstand in de grafiek wordt verwerkt.
- De zoekkwaliteit en prestaties zijn het meest voorspelbaar wanneer
graph_catchup_pending_percentnul is of consequent laag blijft.
Interpreteer graf-inhaalwaarden
Er is geen universele drempel voor een hoog inhaalpercentage in grafieken. Een passende drempel hangt af van de werklast, het tempo van datawijziging, de databaseconfiguratie en het verwachte onderhoudsinterval.
Tijdens batch-loading of periodes van hoge DML-activiteit kunt u een tijdelijke toename van het inhaalpercentage in de grafiek verwachten. Controleer of de waarde richting nul beweegt nadat de werklast is afgenomen.
Onderzoek de vectorindex als je een van de volgende omstandigheden waarneemt:
-
Aanhoudende achterstand in grafiekinhalen:
graph_catchup_pending_percentblijft verhoogd en beweegt niet richting nul. -
Achtergrondtaak mislukt:
last_background_task_succeededis 0. -
Achtergrondtaakfout:
last_background_task_error_messagebevat een fout. -
Verminderde terugroepactie:
VECTOR_SEARCHlevert minder relevante resultaten op dan verwacht. - Onverwachte prestatieverlies: De latentie bij vectorzoekopdrachten neemt toe, terwijl de achterstand bij de inhaaldata in de grafiek verhoogd blijft.
NULL Waarden voor de achtergrondtaakkolommen duiden niet per se op een mislukking. Ze kunnen aangeven dat er nog geen achtergrondonderhoudstaak is uitgevoerd.
Wanneer een vectorindex opnieuw moet worden opgebouwd
Overweeg het opnieuw opbouwen van een vectorindex wanneer je meetbare prestaties of achteruitgang van de herinneringen ziet. Bouw geen index opnieuw op basis van alleen een tijdelijke niet-nul graph_catchup_pending_percent waarde.
Scenario's waarin herbouw passend kan zijn zijn onder andere:
- Significante achteruitgang van de herinnering: Vectorzoekopdracht levert minder relevante resultaten op dan verwacht nadat de inhaalscore van de grafiek is voltooid.
- Grootschalige gegevensvervanging: De meeste of alle embeddings worden vervangen, bijvoorbeeld wanneer data opnieuw wordt ingebed met een ander model.
- Persistente onderhoudsproblemen: Het inhaalpercentage in de grafiek daalt niet en achtergrondonderhoud faalt herhaaldelijk.
Voor meer informatie, zie richtlijnen voor gegevenskwaliteit en onderhoud voor vectorindexen.
Permissions
Vereist VIEW DATABASE STATE machtiging voor de database.
Examples
A. Alle vectorindexen bewaken
De volgende query geeft grafiekinhalen en achtergrondonderhoudsinformatie voor alle vectorindexen in de huidige database:
SELECT
DB_NAME() AS database_name,
OBJECT_SCHEMA_NAME(v.object_id) AS schema_name,
OBJECT_NAME(v.object_id) AS table_name,
i.name AS vector_index_name,
v.graph_catchup_pending_percent,
v.quantized_keys_used_percent,
v.last_background_task_execution_time,
v.last_background_task_succeeded,
v.last_background_task_duration_seconds,
v.last_background_task_processed_inserts,
v.last_background_task_processed_deletes,
v.last_background_task_error_message
FROM sys.dm_db_vector_indexes AS v
INNER JOIN sys.indexes AS i
ON i.object_id = v.object_id
AND i.index_id = v.index_id
ORDER BY
v.graph_catchup_pending_percent DESC,
schema_name,
table_name,
vector_index_name;
B. Houd een specifieke tabel in de gaten
De volgende query geeft vectorindexonderhoudsinformatie voor de dbo.Articles tabel terug:
SELECT
OBJECT_SCHEMA_NAME(v.object_id) AS schema_name,
OBJECT_NAME(v.object_id) AS table_name,
i.name AS vector_index_name,
v.graph_catchup_pending_percent,
v.last_background_task_execution_time,
v.last_background_task_succeeded,
v.last_background_task_error_message
FROM sys.dm_db_vector_indexes AS v
INNER JOIN sys.indexes AS i
ON i.object_id = v.object_id
AND i.index_id = v.index_id
WHERE v.object_id = OBJECT_ID(N'dbo.Articles');
C. Identificeer indexen die aandacht nodig hebben
Het volgende voorbeeld gebruikt 15 procent als illustratieve monitoringsdrempel. Kies een drempel die geschikt is voor jouw werkdruk:
DECLARE @GraphCatchupThreshold decimal(10,2) = 15.0;
SELECT
OBJECT_SCHEMA_NAME(v.object_id) AS schema_name,
OBJECT_NAME(v.object_id) AS table_name,
i.name AS vector_index_name,
v.graph_catchup_pending_percent,
v.last_background_task_execution_time,
v.last_background_task_succeeded,
v.last_background_task_error_message
FROM sys.dm_db_vector_indexes AS v
INNER JOIN sys.indexes AS i
ON i.object_id = v.object_id
AND i.index_id = v.index_id
WHERE
v.graph_catchup_pending_percent > @GraphCatchupThreshold
OR v.last_background_task_succeeded = 0
OR v.last_background_task_error_message IS NOT NULL
ORDER BY v.graph_catchup_pending_percent DESC;