Plan değişimi P455
Orta İyileşme 50,7× BekliyorDB-12 · query_id 2186 · rag.usp_EmbedQueue_Dequeue · değişim 30.09.2026 03:00 · plan 2221 → 7360 · Dönüşümlü (5 el değiştirme) · Sorgu detayı ve analizleri
Güven gerekçesiOrta: tek aday (PARAM), mekanik değil (plan ile doğrudan bağ kanıtlanmıyor). Zayıf karşı kanıt: METADATA_GAP.
Sorgu metni
(@MaxAttempts int)UPDATE rag.EmbedQueue SET Status = 'Failed', Error = COALESCE(Error, N'Deneme hakkı bitti (lease süresi doldu)'),
FinishedAtUtc = SYSUTCDATETIME(), LeaseUntilUtc = NULL
WHERE Status = 'Running' AND LeaseUntilUtc < SYSUTCDATETIME() AND Attempt >= @MaxAttempts1. Etki özeti
| Metrik | Eski plan (2221) | Yeni plan (7360) | Değişim |
|---|---|---|---|
| Çalışma | 475 | 3.179 | |
| İptal / hata | 0 / 0 | 0 / 0 | |
| Süre ort. (ms) | 6,9 | 0,1 | -98% |
| Süre maks. (ms) | 13,5 | 1,7 | -87% |
| Süre sapma (ms) | 1,9 | 0,1 | -97% |
| CPU ort. (ms) | 6,9 | 0,1 | -98% |
| CPU maks. (ms) | 13,5 | 1,7 | -87% |
| Mantıksal okuma ort. | 334,9 | 2,1 | -99% |
| Mantıksal okuma maks. | 415,0 | 4,0 | -99% |
| Fiziksel okuma | 0,0 | 0,0 | |
| Yazma | 0,0 | 0,0 | |
| Bellek (KB) | 1.024,0 | 1.024,0 | 0% |
| Tempdb (KB) | 0,0 | 0,0 | |
| DOP | 1,0 | 1,0 | 0% |
| Satır ort. | 0,0 | 0,0 | |
| Satır maks. | 0,0 | 0,0 | |
| Dönem | 29.09.2026 02:00 → 30.09.2026 16:00 | 30.09.2026 03:00 → 2.10.2026 03:00 |
Bekleme kategorileri
ms / çalışma| Bekleme kategorisi | Eski plan (2221) | Yeni plan (7360) |
|---|---|---|
| CPU | 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 Clustered Index Scan [PK_EmbedQueue]
- Yalnız yeni planda erişim: rag.EmbedQueue Index Seek [IX_EmbedQueue_Status]; rag.EmbedQueue Clustered Index Seek [PK_EmbedQueue] (lookup)
- Yalnız yeni planda join: Nested Loops (Inner Join)
- Tahmini maliyet: 0.045 → 0.145; tahmini satır: 1 → 1
- Eski planın index'leri
- rag.EmbedQueue.UX_EmbedQueue_Pending, rag.EmbedQueue.PK_EmbedQueue
- Yeni planın index'leri
- rag.EmbedQueue.UX_EmbedQueue_Pending, rag.EmbedQueue.PK_EmbedQueue, rag.EmbedQueue.IX_EmbedQueue_Status
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 0 → 0 (1×) | ≥ 2× | desteklemiyor | Çalışma başına satır benzer (0 → 0): iş yükü farkı yok. |
| PARAM | baskın plan 5 kez el değiştirdi | ≥ 3 | destekliyor | İki plan aynı dönemde sırayla kullanılıyor (5 el değiştirme): plan seçimi bir olaydan çok parametre değerine bağlı (parametre duyarlılığı). |
5. Karşı kanıtlar
- METADATA_GAP (zayıf): Metadata toplama 2026-10-01 tarihinde başladı, değişim 2026-09-30: 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 #P455 | DB: DB-12 | Improvement | Confidence: Medium (review pending) Query: (@MaxAttempts int)UPDATE rag.EmbedQueue SET Status = ?, Error = COALESCE(Error, ?), FinishedAtUtc = SYSUTCDATETIME(), LeaseUntilUtc = NULL WHERE Status = ? AND LeaseUntilUtc < SYSUTCDATETIME() AND Attempt >= @MaxAttempts Change: 2026-09-30 03:00 UTC, plan 2221 → 7360, pattern: Alternating (5 switches) Impact (Query Store, per execution): duration 6.9 → 0.1 ms (-98%); CPU 6.9 → 0.1 ms (-98%); reads 335 → 2 (-99%); rows 0 → 0 Plan difference: Access only in the old plan: rag.EmbedQueue Clustered Index Scan [PK_EmbedQueue]; Access only in the new plan: rag.EmbedQueue Index Seek [IX_EmbedQueue_Status]; rag.EmbedQueue Clustered Index Seek [PK_EmbedQueue] (lookup); Join only in the new plan: Nested Loops (Inner Join); Estimated cost: 0.045 → 0.145; estimated rows: 1 → 1 Candidate cause: PARAM — The two plans alternate in the same period (5 switches): plan choice depends on the parameter value rather than an event (parameter sensitivity). Counter-evidence: METADATA_GAP — Metadata collection started on 2026-10-01 and the change was on 2026-09-30: index, statistics and module events could not be evaluated (no data, not no events). Confidence rationale: Medium: a single candidate (PARAM), not mechanical (no direct link to the plan is proven). Weak counter-evidence: METADATA_GAP. 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.