Plan değişimi P457
Düşük Kötüleşme 10,9× BekliyorDB-12 · query_id 12314 · DBA.usp_Apply_Qds · değişim 2.10.2026 12:00 · plan 7890 → 7895 · Dönüşümlü (4 el değiştirme) · Sorgu detayı ve analizleri
Güven gerekçesiDüşük: güçlü karşı kanıt (WORK_PROPORTIONAL, SAME_SHAPE).
Sorgu metni
(@now datetime)WITH p AS (SELECT PlanHash, PlanXml, ROW_NUMBER() OVER (PARTITION BY PlanHash ORDER BY plan_id) AS rn FROM #px)
INSERT perf.QdsPlanXml (PlanHash, PlanXmlCompressed, FirstSeenUtc, LastSeenUtc)
SELECT PlanHash, COMPRESS(PlanXml), @now, @now FROM p
WHERE rn = 1 AND NOT EXISTS (SELECT 1 FROM perf.QdsPlanXml AS e WHERE e.PlanHash = p.PlanHash)1. Etki özeti
| Metrik | Eski plan (7890) | Yeni plan (7895) | Değişim |
|---|---|---|---|
| Çalışma | 202 | 106 | |
| İptal / hata | 0 / 0 | 0 / 0 | |
| Süre ort. (ms) | 11,8 | 127,8 | +987% |
| Süre maks. (ms) | 407,3 | 3.850,6 | +845% |
| Süre sapma (ms) | 48,1 | 530,2 | +1003% |
| CPU ort. (ms) | 6,4 | 71,1 | +1013% |
| CPU maks. (ms) | 382,0 | 1.829,4 | +379% |
| Mantıksal okuma ort. | 126,4 | 2.335,4 | +1748% |
| Mantıksal okuma maks. | 4.972,0 | 58.490,0 | +1076% |
| Fiziksel okuma | 15,4 | 169,9 | +1002% |
| Yazma | 8,3 | 177,1 | +2035% |
| Bellek (KB) | 1.024,0 | 1.627,7 | +59% |
| Tempdb (KB) | 22,2 | 364,7 | +1544% |
| DOP | 1,0 | 1,0 | 0% |
| Satır ort. | 2,8 | 79,3 | +2727% |
| Satır maks. | 162,0 | 1.997,0 | +1133% |
| Dönem | 2.10.2026 12:00 → 5.10.2026 03:00 | 2.10.2026 12:00 → 5.10.2026 02:00 |
Bekleme kategorileri
ms / çalışma| Bekleme kategorisi | Eski plan (7890) | Yeni plan (7895) |
|---|---|---|
| Buffer IO | 0,5 | 11,8 |
| Memory | 0,0 | 1,3 |
| Preemptive | – | 0,3 |
| SQL CLR | 0,1 | 0,3 |
2. Zaman çizelgesi
Eski planYeni plan
┆ değişim anı (kesik çizgi)░ olay (bant: zamanı aralık olarak bilinen)
Olaylar
| Olay | Nesne | Zaman | Önce → sonra | Eski plan kullanıyor | Yeni plan kullanıyor | |
|---|---|---|---|---|---|---|
| StatsUpdated | perf.QdsPlanXml.PK_QdsPlanXml | 1.10.2026 20:11 | → 4054/8303 | evet | evet | |
| StatsUpdated | perf.QdsPlanXml.PK_QdsPlanXml | 1.10.2026 22:10 | → 4316/11134 | evet | evet |
3. Plan karşılaştırması
- Operatör düzeyinde fark yok: süre farkı büyük olasılıkla beklemeden ya da parametre değerinden.
- Eski planın index'leri
- perf.QdsPlanXml.PK_QdsPlanXml
- Yeni planın index'leri
- perf.QdsPlanXml.PK_QdsPlanXml
4. Neden adayları
ölçüm ve eşikle; kesin değildir| Kod | Ölçülen | Eşik | Sonuç | Açıklama |
|---|---|---|---|---|
| STATS | perf.QdsPlanXml.PK_QdsPlanXml güncellendi 2026-10-01 22:10 (örnekleme %38.8); pencerede 2 güncelleme | değişimden önceki 48 saat | destekliyor | İstatistik perf.QdsPlanXml.PK_QdsPlanXml 2026-10-01 22:10 güncellendi (örnekleme %38.8); pencerede 2 güncelleme; planlar bu istatistiği kullanıyor. |
| WORKLOAD | çalışma başına satır 2.81 → 79.34 (28.27×) | ≥ 2× | destekliyor | Planlar farklı iş yükü görüyor: çalışma başına satır 2.81 → 79.34. Planlar farklı parametre/parti büyüklüğü için derlenmiş olabilir. |
| PARAM | baskın plan 4 kez el değiştirdi | ≥ 3 | destekliyor | İki plan aynı dönemde sırayla kullanılıyor (4 el değiştirme): plan seçimi bir olaydan çok parametre değerine bağlı (parametre duyarlılığı). |
5. Karşı kanıtlar
- WORK_PROPORTIONAL (güçlü): Çalışma başına satır 28.27×, süre 10.87× değişti; satır başına süre 4.1895 → 1.6114 ms: süre farkı işlenen veri miktarından, plandan değil.
- HIGH_VARIANCE (zayıf): Eski planın süre sapması ortalamanın %409'i: ortalama güvenilir değil.
- HIGH_VARIANCE (zayıf): Yeni planın süre sapması ortalamanın %415'i: ortalama güvenilir değil.
- METADATA_GAP (zayıf): Metadata toplama 2026-10-01 tarihinde başladı, değişim 2026-10-02: index/istatistik/modül olayları değerlendirilemedi (olay yok değil, veri yok).
- SAME_SHAPE (güçlü): İki planın operatör ağacı aynı (operatörler, tablolar, index'ler): plan değişmemiş; fark yalnız derlenen parametre değerleri ve satır tahminlerinde. Yavaşlık plan seçiminden değil, bu parametre değerinin işlediği veri miktarından ya da beklemeden kaynaklanıyor olabilir.
6. Korpus metni önizlemesi
onaylanınca RAG hafızasına bu metin girer (başlığa onaylayan eklenir)Plan change case #P457 | DB: DB-12 | Regression | Confidence: Low (review pending) Query: (@now datetime)WITH p AS (SELECT PlanHash, PlanXml, ROW_NUMBER() OVER (PARTITION BY PlanHash ORDER BY plan_id) AS rn FROM #px) INSERT perf.QdsPlanXml (PlanHash, PlanXmlCompressed, FirstSeenUtc, LastSeenUtc) SELECT PlanHash, COMPRESS(PlanXml), @now, @now FROM p WHERE rn = ? AND NOT EXISTS (SELECT ? FROM perf.QdsPlanXml AS e WHERE e.PlanHash = p.PlanHash) Change: 2026-10-02 12:00 UTC, plan 7890 → 7895, pattern: Alternating (4 switches) Impact (Query Store, per execution): duration 11.8 → 127.8 ms (+987%); CPU 6.4 → 71.1 ms (+1013%); reads 126 → 2,335 (+1748%); rows 2.81 → 79.34 (+2727%) Plan difference: no operator-level difference Candidate cause: STATS — Statistic perf.QdsPlanXml.PK_QdsPlanXml was updated 2026-10-01 22:10 (sampled 38.8%); 2 updates in the window; the plans use this statistic. Candidate cause: WORKLOAD — The plans see a different workload: rows per execution 2.81 → 79.34. The plans may have been compiled for different parameters or batch sizes. Candidate cause: PARAM — The two plans alternate in the same period (4 switches): plan choice depends on the parameter value rather than an event (parameter sensitivity). Counter-evidence: WORK_PROPORTIONAL — Rows per execution changed 28.27× and duration 10.87×; duration per row 4.1895 → 1.6114 ms: the duration difference comes from the amount of data processed, not the plan. Counter-evidence: HIGH_VARIANCE — The old plan's duration standard deviation is 409% of the average: the average is not reliable. Counter-evidence: HIGH_VARIANCE — The new plan's duration standard deviation is 415% of the average: the average is not reliable. Counter-evidence: METADATA_GAP — Metadata collection started on 2026-10-01 and the change was on 2026-10-02: index, statistics and module events could not be evaluated (no data, not no events). Counter-evidence: SAME_SHAPE — The two plans have the same operator tree (operators, tables, indexes): the plan did not change; the difference is only in the compiled parameter values and row estimates. The slowness may come from the amount of data this parameter value processes or from waits, not from plan choice. Confidence rationale: Low: strong counter-evidence (WORK_PROPORTIONAL, SAME_SHAPE). 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.