Demo modu

Plan değişimi P441

Orta Kötüleşme 26,8× Bekliyor

DB-11 · query_id 66255 · rag.usp_EmbedQueue_Dequeue · değişim 7.10.2026 13:00 · plan 65163 → 65713 · Geçiş · Sorgu detayı ve analizleri

Güven gerekçesiOrta: tek aday (STATS), mekanik değil (plan ile doğrudan bağ kanıtlanmıyor). Zayıf karşı kanıt: LOW_SAMPLE.

Sorgu metni

SQL
(@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 < DBA.fn_Now())
        -- Vaka/KB önce: bekçi her gün binlerce profili kuyruğa alır, onaydan sonra gelen vaka onların ardında beklemesin
        ORDER BY CASE SourceType WHEN 'Profile' THEN 1 ELSE 0 END, QueueID
    )
    UPDATE c SET Status = 'Running', Attempt = Attempt + 1, LeaseUntilUtc = DATEADD(second, @LeaseSeconds, DBA.fn_Now())
    OUTPUT inserted.QueueID, inserted.SourceType, inserted.SourceRef, inserted.Attempt

1. Etki özeti

MetrikEski plan (65163)Yeni plan (65713)Değişim
Çalışma284.417
İptal / hata0 / 00 / 0
Süre ort. (ms)0,718,4+2584%
Süre maks. (ms)1,1240,0+20954%
Süre sapma (ms)0,18,8+6850%
CPU ort. (ms)0,718,3+2564%
CPU maks. (ms)1,1133,3+11607%
Mantıksal okuma ort.29,91.383,8+4524%
Mantıksal okuma maks.40,04.433,0+10983%
Fiziksel okuma0,00,0
Yazma0,10,3+138%
Bellek (KB)1.024,01.029,7+1%
Tempdb (KB)52,67,6-86%
DOP1,01,00%
Satır ort.2,02,6+30%
Satır maks.2,0100,0+4900%
Dönem7.10.2026 13:00 → 8.10.2026 20:00 7.10.2026 13:00 → 8.10.2026 21:00

Bekleme kategorileri

ms / çalışma
Bekleme kategorisiEski plan (65163)Yeni plan (65713)
CPU–0,2
Memory–0,0
Lock–0,0

2. Zaman çizelgesi

StatsUpdated rag.EmbedQueue.PK_EmbedQueue (2026-10-05 21:01)StatsUpdated rag.EmbedQueue.PK_EmbedQueue (2026-10-06 06:03)StatsUpdated rag.EmbedQueue.PK_EmbedQueue (2026-10-07 10:26)StatsUpdated rag.EmbedQueue.IX_EmbedQueue_Status (2026-10-06 00:17)StatsUpdated rag.EmbedQueue.IX_EmbedQueue_Status (2026-10-06 21:58)StatsUpdated rag.EmbedQueue.IX_EmbedQueue_Status (2026-10-06 22:15)StatsUpdated rag.EmbedQueue.UX_EmbedQueue_Pending (2026-10-05 20:20)StatsUpdated rag.EmbedQueue._WA_Sys_00000003_50D1B250 (2026-10-05 21:01)StatsUpdated rag.EmbedQueue._WA_Sys_00000003_50D1B250 (2026-10-06 06:03)StatsUpdated rag.EmbedQueue._WA_Sys_00000003_50D1B250 (2026-10-07 10:26)StatsUpdated rag.EmbedQueue._WA_Sys_00000002_50D1B250 (2026-10-05 21:01)StatsUpdated rag.EmbedQueue._WA_Sys_00000002_50D1B250 (2026-10-06 06:03)StatsUpdated rag.EmbedQueue._WA_Sys_00000002_50D1B250 (2026-10-07 10:26)StatsUpdated rag.EmbedQueue._WA_Sys_00000005_50D1B250 (2026-10-06 00:18)StatsUpdated rag.EmbedQueue._WA_Sys_00000005_50D1B250 (2026-10-06 16:35)StatsUpdated rag.EmbedQueue._WA_Sys_00000005_50D1B250 (2026-10-07 08:41)StatsUpdated rag.EmbedQueue._WA_Sys_00000007_50D1B250 (2026-10-06 05:27)StatsUpdated rag.EmbedQueue._WA_Sys_00000007_50D1B250 (2026-10-07 13:53)ModuleChanged rag.usp_EmbedQueue_Dequeue (2026-10-06 22:14 – 2026-10-07 20:39)Değişim: 7.10.2026 13:00Eski plan 7.10.2026 13:00: 0,7 msEski plan 7.10.2026 20:00: 0,6 msEski plan 8.10.2026 12:00: 0,6 msEski plan 8.10.2026 14:00: 0,9 msEski plan 8.10.2026 16:00: 0,8 msEski plan 8.10.2026 17:00: 0,7 msEski plan 8.10.2026 18:00: 0,7 msEski plan 8.10.2026 19:00: 0,7 msYeni plan 7.10.2026 13:00: 16,2 msYeni plan 7.10.2026 14:00: 15,4 msYeni plan 7.10.2026 15:00: 15,7 msYeni plan 7.10.2026 16:00: 17,9 msYeni plan 7.10.2026 17:00: 18,0 msYeni plan 7.10.2026 18:00: 14,4 msYeni plan 7.10.2026 20:00: 24,8 msYeni plan 7.10.2026 21:00: 17,2 msYeni plan 8.10.2026 09:00: 35,4 msYeni plan 8.10.2026 10:00: 62,4 msYeni plan 8.10.2026 11:00: 21,4 msYeni plan 8.10.2026 12:00: 17,1 msYeni plan 8.10.2026 13:00: 19,8 msYeni plan 8.10.2026 14:00: 16,9 msYeni plan 8.10.2026 15:00: 16,8 msYeni plan 8.10.2026 16:00: 20,8 msYeni plan 8.10.2026 17:00: 19,8 msYeni plan 8.10.2026 18:00: 21,2 msYeni plan 8.10.2026 19:00: 17,6 msYeni plan 8.10.2026 20:00: 17,9 msmax 62,4 ms 10-05 20:20 10-08 20:00
Eski planYeni plan ┆ değişim anı (kesik çizgi)░ olay (bant: zamanı aralık olarak bilinen)

Olaylar

OlayNesneZamanÖnce → sonra Eski plan kullanıyorYeni plan kullanıyor
StatsUpdatedrag.EmbedQueue.PK_EmbedQueue5.10.2026 21:01 → 40090/40090 hayırevet
StatsUpdatedrag.EmbedQueue.PK_EmbedQueue6.10.2026 06:03 → 46550/46550 hayırevet
StatsUpdatedrag.EmbedQueue.PK_EmbedQueue7.10.2026 10:26 → 51466/53274 hayırevet
StatsUpdatedrag.EmbedQueue.IX_EmbedQueue_Status6.10.2026 00:17 → 44164/44164 hayırevet
StatsUpdatedrag.EmbedQueue.IX_EmbedQueue_Status6.10.2026 21:58 → 50752/50752 hayırevet
StatsUpdatedrag.EmbedQueue.IX_EmbedQueue_Status6.10.2026 22:15 → 52622/52622 hayırevet
StatsUpdatedrag.EmbedQueue.UX_EmbedQueue_Pending5.10.2026 20:20 → 1/1 hayırevet
StatsUpdatedrag.EmbedQueue._WA_Sys_00000003_50D1B2505.10.2026 21:01 → 40090/40090 hayırhayır
StatsUpdatedrag.EmbedQueue._WA_Sys_00000003_50D1B2506.10.2026 06:03 → 46550/46550 hayırhayır
StatsUpdatedrag.EmbedQueue._WA_Sys_00000003_50D1B2507.10.2026 10:26 → 52179/53274 hayırhayır
StatsUpdatedrag.EmbedQueue._WA_Sys_00000002_50D1B2505.10.2026 21:01 → 40090/40090 hayırhayır
StatsUpdatedrag.EmbedQueue._WA_Sys_00000002_50D1B2506.10.2026 06:03 → 46550/46550 hayırhayır
StatsUpdatedrag.EmbedQueue._WA_Sys_00000002_50D1B2507.10.2026 10:26 → 52179/53274 hayırhayır
StatsUpdatedrag.EmbedQueue._WA_Sys_00000005_50D1B2506.10.2026 00:18 → 45427/45427 hayırhayır
StatsUpdatedrag.EmbedQueue._WA_Sys_00000005_50D1B2506.10.2026 16:35 → 46568/46568 hayırhayır
StatsUpdatedrag.EmbedQueue._WA_Sys_00000005_50D1B2507.10.2026 08:41 → 52716/53142 hayırhayır
StatsUpdatedrag.EmbedQueue._WA_Sys_00000007_50D1B2506.10.2026 05:27 → 45559/45559 hayırhayır
StatsUpdatedrag.EmbedQueue._WA_Sys_00000007_50D1B2507.10.2026 13:53 → 52178/53273 hayırhayır sıra belirsiz
ModuleChangedrag.usp_EmbedQueue_Dequeue6.10.2026 22:14 – 7.10.2026 20:39 bilinmiyorbilinmiyor sıra belirsiz

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]
  • Tahmini maliyet: 0.038 → 1.129; tahmini satır: 2 → 100
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çülenEşikSonuçAçıklama
STATS rag.EmbedQueue.PK_EmbedQueue güncellendi 2026-10-07 10:26 (örnekleme %96.6); pencerede 3 güncellemedeğişimden önceki 48 saat destekliyor İstatistik rag.EmbedQueue.PK_EmbedQueue 2026-10-07 10:26 güncellendi (örnekleme %96.6); pencerede 3 güncelleme; planlar bu istatistiği kullanıyor.
STATS rag.EmbedQueue.IX_EmbedQueue_Status güncellendi 2026-10-06 22:15 (örnekleme %100); pencerede 3 güncellemedeğişimden önceki 48 saat destekliyor İstatistik rag.EmbedQueue.IX_EmbedQueue_Status 2026-10-06 22:15 güncellendi (örnekleme %100); pencerede 3 güncelleme; planlar bu istatistiği kullanıyor.
STATS rag.EmbedQueue.UX_EmbedQueue_Pending güncellendi 2026-10-05 20:20 (örnekleme %100)değişimden önceki 48 saat destekliyor İstatistik rag.EmbedQueue.UX_EmbedQueue_Pending 2026-10-05 20:20 güncellendi (örnekleme %100); planlar bu istatistiği kullanıyor.
STATS 4 istatistik güncellendi, planlar kullanmıyor desteklemiyor Pencerede güncellenen ama iki planın da kullanmadığı istatistikler aday değil: rag.EmbedQueue._WA_Sys_00000003_50D1B250, rag.EmbedQueue._WA_Sys_00000002_50D1B250, rag.EmbedQueue._WA_Sys_00000005_50D1B250, rag.EmbedQueue._WA_Sys_00000007_50D1B250.
MODULE rag.usp_EmbedQueue_Dequeue değişti 2026-10-06 22:14 – 2026-10-07 20:39 arasındadeğişimden önceki 48 saat desteklemiyor Sorgunun modülü rag.usp_EmbedQueue_Dequeue 2026-10-06 22:14 – 2026-10-07 20:39 arasında değişti (yeniden derleme tetikler).
WORKLOAD çalışma başına satır 2 → 2.59 (1.3×)≥ 2× desteklemiyor Çalışma başına satır benzer (2 → 2.59): 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

6. Korpus metni önizlemesi

onaylanınca RAG hafızasına bu metin girer (başlığa onaylayan eklenir)
6. Korpus metni önizlemesi
Plan change case #P441 | DB: DB-11 | Regression | Confidence: Medium (review pending)
Query: (@BatchSize int,@LeaseSeconds int)WITH c AS ( SELECT TOP (@BatchSize) * FROM rag.EmbedQueue WITH (READPAST, UPDLOCK, ROWLOCK) WHERE Status = ? OR (Status = ? AND LeaseUntilUtc < DBA.fn_Now()) ORDER BY CASE SourceType WHEN ? THEN ? ELSE ? END, QueueID ) UPDATE c SET Status = ?, Attempt = Attempt + ?, LeaseUntilUtc = DATEADD(second, @LeaseSeconds, DBA.fn_Now()) OUTPUT inserted.QueueID, inserted.SourceType, inserted.SourceRef, inserted.Attempt
Change: 2026-10-07 13:00 UTC, plan 65163 → 65713, pattern: Transition
Impact (Query Store, per execution): duration 0.7 → 18.4 ms (+2584%); CPU 0.7 → 18.3 ms (+2564%); reads 30 → 1,384 (+4524%); rows 2 → 2.59 (+30%)
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]; Estimated cost: 0.038 → 1.129; estimated rows: 2 → 100
Candidate cause: STATS — Statistic rag.EmbedQueue.PK_EmbedQueue was updated 2026-10-07 10:26 (sampled 96.6%); 3 updates in the window; the plans use this statistic.
Candidate cause: STATS — Statistic rag.EmbedQueue.IX_EmbedQueue_Status was updated 2026-10-06 22:15 (sampled 100%); 3 updates in the window; the plans use this statistic.
Candidate cause: STATS — Statistic rag.EmbedQueue.UX_EmbedQueue_Pending was updated 2026-10-05 20:20 (sampled 100%); the plans use this statistic.
Counter-evidence: ORDER_UNCERTAIN — MODULE candidate ruled out: the time of the rag.usp_EmbedQueue_Dequeue event (between 2026-10-06 22:14 and 2026-10-07 20:39) spans the change, so whether it happened before or after is unknown.
Counter-evidence: LOW_SAMPLE — The old plan ran only 28 times: the sample is small and the average is weak.
Confidence rationale: Medium: a single candidate (STATS), not mechanical (no direct link to the plan is proven). Weak counter-evidence: LOW_SAMPLE.
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.