Plan değişimi P456
Düşük Kötüleşme 35,4× BekliyorDB-12 · query_id 2187 · rag.usp_EmbedQueue_Dequeue · değişim 28.09.2026 00:00 · plan 2202 → 2222 · Geçiş · Sorgu detayı ve analizleri
Güven gerekçesiDüşük: destekleyen aday yok — neden bilinmiyor. Olay verisi eksik (metadata toplama değişimden sonra başladı).
Sorgu metni
(@MaxAttempts int,@BatchSize int,@LeaseSeconds int)WITH c AS (
SELECT TOP (@BatchSize) *
FROM rag.EmbedQueue WITH (READPAST, UPDLOCK, ROWLOCK)
WHERE Status = 'Queued' OR (Status = 'Running' AND LeaseUntilUtc < SYSUTCDATETIME() AND Attempt < @MaxAttempts)
ORDER BY QueueID
)
UPDATE c SET Status = 'Running', Attempt = Attempt + 1, LeaseUntilUtc = DATEADD(second, @LeaseSeconds, SYSUTCDATETIME())
OUTPUT inserted.QueueID, inserted.SourceType, inserted.SourceRef, inserted.Attempt1. Etki özeti
| Metrik | Eski plan (2202) | Yeni plan (2222) | Değişim |
|---|---|---|---|
| Çalışma | 58 | 38.421 | |
| İptal / hata | 0 / 0 | 1 / 0 | |
| Süre ort. (ms) | 0,3 | 11,9 | +3441% |
| Süre maks. (ms) | 1,6 | 826,8 | +50469% |
| Süre sapma (ms) | 0,2 | 10,4 | +5441% |
| CPU ort. (ms) | 0,3 | 11,8 | +3419% |
| CPU maks. (ms) | 1,6 | 175,3 | +10622% |
| Mantıksal okuma ort. | 11,6 | 426,6 | +3587% |
| Mantıksal okuma maks. | 13,0 | 930,0 | +7054% |
| Fiziksel okuma | 0,0 | 1,2 | |
| Yazma | 0,0 | 0,0 | -53% |
| Bellek (KB) | 1.024,0 | 1.024,0 | 0% |
| Tempdb (KB) | 2,2 | 0,2 | -90% |
| DOP | 1,0 | 1,0 | 0% |
| Satır ort. | 1,5 | 0,9 | -43% |
| Satır maks. | 2,0 | 20,0 | +900% |
| Dönem | 28.09.2026 00:00 → 29.09.2026 19:00 | 28.09.2026 00:00 → 5.10.2026 03:00 |
Bekleme kategorileri
ms / çalışma| Bekleme kategorisi | Eski plan (2202) | Yeni plan (2222) |
|---|---|---|
| Memory | – | 0,4 |
| CPU | – | 0,1 |
| Idle | – | 0,0 |
| Buffer IO | – | 0,0 |
| Buffer Latch | – | 0,0 |
2. Zaman çizelgesi
Eski planYeni plan
┆ değişim anı (kesik çizgi)░ olay (bant: zamanı aralık olarak bilinen)
Pencerede olay yok — metadata toplama 1.10.2026 tarihinde başladı, değişimden önceki olaylar görülemez (veri yok).
3. Plan karşılaştırması
- Yalnız eski planda erişim: rag.EmbedQueue Table Update; rag.EmbedQueue Table Scan
- Yalnız yeni planda erişim: rag.EmbedQueue Index Update [UX_EmbedQueue_Pending]; rag.EmbedQueue Clustered Index Update [PK_EmbedQueue]; rag.EmbedQueue Clustered Index Scan [PK_EmbedQueue]
- Yalnız yeni planda uyarı: UnmatchedIndexes
- Tahmini maliyet: 0.025 → 0.058; tahmini satır: 1 → 2
- Eski planın index'leri
- yok
- Yeni planın index'leri
- rag.EmbedQueue.UX_EmbedQueue_Pending, rag.EmbedQueue.PK_EmbedQueue
4. Neden adayları
ölçüm ve eşikle; kesin değildir| Kod | Ölçülen | Eşik | Sonuç | Açıklama |
|---|---|---|---|---|
| WORKLOAD | çalışma başına satır 1.5 → 0.86 (1.75×) | ≥ 2× | desteklemiyor | Çalışma başına satır benzer (1.5 → 0.86): iş yükü farkı yok. |
| PARAM | baskın plan 0 kez el değiştirdi | ≥ 3 | desteklemiyor | Planlar dönüşümlü değil: yeni plan eskisinin yerini aldı. |
5. Karşı kanıtlar
- METADATA_GAP (zayıf): Metadata toplama 2026-10-01 tarihinde başladı, değişim 2026-09-28: index/istatistik/modül olayları değerlendirilemedi (olay yok değil, veri yok).
6. Korpus metni önizlemesi
onaylanınca RAG hafızasına bu metin girer (başlığa onaylayan eklenir)Plan change case #P456 | DB: DB-12 | Regression | Confidence: Low (review pending) Query: (@MaxAttempts int,@BatchSize int,@LeaseSeconds int)WITH c AS ( SELECT TOP (@BatchSize) * FROM rag.EmbedQueue WITH (READPAST, UPDLOCK, ROWLOCK) WHERE Status = ? OR (Status = ? AND LeaseUntilUtc < SYSUTCDATETIME() AND Attempt < @MaxAttempts) ORDER BY QueueID ) UPDATE c SET Status = ?, Attempt = Attempt + ?, LeaseUntilUtc = DATEADD(second, @LeaseSeconds, SYSUTCDATETIME()) OUTPUT inserted.QueueID, inserted.SourceType, inserted.SourceRef, inserted.Attempt Change: 2026-09-28 00:00 UTC, plan 2202 → 2222, pattern: Transition Impact (Query Store, per execution): duration 0.3 → 11.9 ms (+3441%); CPU 0.3 → 11.8 ms (+3419%); reads 12 → 427 (+3587%); rows 1.5 → 0.86 (-43%); aborted 0 → 1 Plan difference: Access only in the old plan: rag.EmbedQueue Table Update; rag.EmbedQueue Table Scan; Access only in the new plan: rag.EmbedQueue Index Update [UX_EmbedQueue_Pending]; rag.EmbedQueue Clustered Index Update [PK_EmbedQueue]; rag.EmbedQueue Clustered Index Scan [PK_EmbedQueue]; Warning only in the new plan: UnmatchedIndexes; Estimated cost: 0.025 → 0.058; estimated rows: 1 → 2 Candidate cause: none — cause unknown. Counter-evidence: METADATA_GAP — Metadata collection started on 2026-10-01 and the change was on 2026-09-28: index, statistics and module events could not be evaluated (no data, not no events). Confidence rationale: Low: no supporting candidate — cause unknown. Event data is missing (metadata collection started after the change). Note: this is a candidate cause, not proof of the root cause.
7. Karar
Karar vermek için Analyst rolü gerekir.
Karar geçmişi
Kayıt yok
Henüz karar yok.