Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2025 (17.x)
Azure SQL Database
Databáze SQL v Microsoft Fabric
Vrátí přehledy o stavu a výkonu vektorového indexu v reálném čase. Toto zobrazení slouží k monitorování operací údržby vektorových indexů a identifikaci indexů, které vyžadují pozornost.
| Název sloupce | Datový typ | Description |
|---|---|---|
object_id |
int | ID objektu tabulky. |
index_id |
int | ID indexu. |
approximate_staleness_percent |
decimal(10;2) | Procento změn čekajících na aktualizaci indexu Vyšší hodnoty označují více čekajících změn. |
quantized_keys_used_percent |
decimal(10;2) | Procento prostoru klíče spotřebovaného indexem |
last_background_task_time |
datetime2 | Časové razítko poslední údržby na pozadí Určuje, kdy se dokončila poslední operace údržby. |
last_background_task_succeeded |
bit | Stav úspěchu poslední úlohy údržby 1 označuje úspěch, 0 značí selhání. |
last_background_task_duration_seconds |
bigint | Doba trvání poslední úlohy údržby v sekundách |
last_background_task_processed_inserts |
bigint | Počet operací vložení zpracovaných v poslední úloze údržby |
last_background_task_processed_deletes |
bigint | Počet operací odstranění zpracovaných v poslední úloze údržby |
last_background_task_error_message |
nvarchar(max) | Chybová zpráva, pokud poslední úloha údržby selhala. Hodnota NULL, pokud byl úkol úspěšný. |
Poznámky
Toto zobrazení vrátí informace pro všechny vektorové indexy v aktuální databázi. Vektorové indexy provádějí údržbu na pozadí, aby zahrnovaly změny DML (vložení, aktualizace, odstranění). Sloupec approximate_staleness_percent označuje, kolik změn čeká na začlenění do struktury indexu.
Analýza approximate_staleness_percent
Sloupec approximate_staleness_percent označuje, jaké procento změn dat ještě nezpracovalo úloha údržby na pozadí, která udržuje index vektoru up-to-date. Když vložíte, aktualizujete nebo odstraníte řádky v tabulce s vektorovým indexem, tyto změny se okamžitě nezačlení do struktury grafu DiskANN. Místo toho se změny zařadí do fronty a zpracovávají úlohou údržby na pozadí. Procento neagrese se při zpracování backlogu vrátí zpět na 0%.
Pokud máte například tabulku s 10 000 řádky a vektorovým indexem a vložíte 500 nových řádků, je neautornost přibližně 5% (500 čekajících změn z 10 500 celkových řádků). S tím, jak údržba na pozadí zpracovává tyto 500 vložení, procento neagrese se vrátí zpět k nule.
Dopad na dotazy VECTOR_SEARCH
VECTOR_SEARCH používá aktuální stav grafu DiskANN v kombinaci s čekajícími změnami, které ještě nebyly plně začleněny. To znamená:
- I když je neautnost vyšší než nula, vaše
VECTOR_SEARCHdotazy stále vrací výsledky a obsahují nedávno vložené nebo aktualizované řádky. - Vyhledávací algoritmus ale nemůže využít úplnou strukturu grafu pro optimální řazení, dokud se nedokončí údržba na pozadí.
- Přesnost řazení se může snížit. Skóre podobnosti a řazení můžou být méně optimální pro řádky, které ještě nejsou plně integrované do struktury indexu.
Kvalita vyhledávání je nejlepší, když jsou všechny vektory správně integrovány do grafu a procento neakutnosti je nula.
Interpretace zastaralých hodnot
Neexistuje žádná univerzální prahová hodnota pro "vysokou" neakutnost, protože závisí na vašem vzoru úloh. K interpretaci hodnot, které vidíte, použijte tyto pokyny:
- Během dávkového zatížení: 20–30% nečekanost, která během minut klesne na téměř nulu, je očekávaná a normální.
- Během pravidelných operací: 0–5% neschůdnost indikuje, že údržba na pozadí udržuje krok s vaší úlohou.
Pokud narazíte na některý z následujících scénářů, prozkoumejte stav indexu:
- Trvalou vysokou neakutnost: Hodnoty konzistentně nad 10–15% během pravidelných operací naznačují, že údržba na pozadí nemůže držet krok s vaší rychlostí DML.
-
Snížení úplnosti: Všimněte si měřitelného poklesu
VECTOR_SEARCHrelevance výsledků. -
Selhání úkolů: Hodnota
last_background_task_succeededje 0. Na pozadí dochází k chybám a index se neaktualizuje.
Kdy znovu sestavit vektorový index
Při sledování výkonu nebo snížení výkonu zvažte opětovné sestavení indexu vektoru, a ne výhradně na procentech neakutnosti. Scénáře opětovného sestavení zahrnují:
- Výrazný pokles kvality odvolání: Hledání vektorů vrací méně relevantních výsledků, než se čekalo
- Nahrazení velkých objemů dat: Při nahrazení většiny nebo všech vkládání (například opětovné vložení pomocí nového modelu)
Podrobné pokyny ke scénářům kvality a údržby dat najdete v pokynech pro kvalitu dat a údržbu pro indexy vektorů.
Monitorujte tuto metriku, abyste porozuměli vzorům údržby indexů a identifikovali indexy vyžadující pozornost.
Povolení
Vyžaduje VIEW DATABASE STATE oprávnění k databázi.
Examples
A. Monitorování všech vektorových indexů
Následující dotaz monitoruje všechny vektorové indexy v aktuální databázi a zobrazuje neakutnost a stav údržby.
SELECT
DB_NAME() AS database_name,
OBJECT_NAME(object_id) AS table_name,
index_id,
approximate_staleness_percent,
last_background_task_succeeded
FROM sys.dm_db_vector_indexes
ORDER BY approximate_staleness_percent DESC;
B. Identifikace indexů vyžadujících pozornost
Následující dotaz najde vektorové indexy s vysokou neakutností nebo nedávnými chybami údržby.
SELECT
OBJECT_NAME(object_id) AS table_name,
approximate_staleness_percent,
last_background_task_error_message
FROM sys.dm_db_vector_indexes
WHERE
approximate_staleness_percent > 15.0 -- Example value, adjust based on your workload
OR last_background_task_succeeded = 0 -- Recent failure
ORDER BY approximate_staleness_percent DESC;
Související obsah
- zobrazení dynamické správy systému
- Zobrazení dynamické správy související s databází (Transact-SQL)
- CREATE VECTOR INDEX (Transact-SQL)
- VECTOR_SEARCH (Transact-SQL)