Plan değişimi P414
Orta Kötüleşme 1154,7× BekliyorDB-11 · query_id 28432 · rag.usp_ReviewQueue · değişim 1.10.2026 19:00 · plan 27819 → 29184 · Dönüşümlü (5 el değiştirme) · Sorgu detayı ve analizleri
Güven gerekçesiOrta: birden fazla aday (STATS, WORKLOAD + PARAM) — rakip açıklamalar. Zayıf karşı kanıt: METADATA_GAP.
Bu sorgunun diğer plan değişimleri
Önceki kararlar; ters yöndeki değişim aynı planlar arasında geri dönüştür.Sorgu metni
(@from datetime,@NowUtc datetime,@Top int)WITH items AS (
SELECT 'Analysis' AS Kind, a.RequestID AS RefId, a.TargetType, a.ServerID, a.DatabaseName, a.QueryHash, a.ObjectName,
CAST(NULL AS varchar(10)) AS Direction, CAST(NULL AS varchar(6)) AS Confidence,
p.Pending, p.Invalid, a.FinishedUtc AS SinceUtc
FROM rag.AnalysisRequest AS a
CROSS APPLY (SELECT COUNT(*) AS Pending, SUM(IIF(r.ValidationStatus = 'Invalid', 1, 0)) AS Invalid
FROM rag.AnalysisRecommendation AS r WHERE r.RequestID = a.RequestID AND r.Decision = 'Pending') AS p
WHERE a.Status = 'Done' AND p.Pending > 0
UNION ALL
SELECT 'PlanChange', c.CaseID, 'Query', c.ServerID, c.DatabaseName, c.query_hash, NULL,
c.Direction, c.Confidence, 1, 0, c.DetectedUtc
FROM rag.PlanChangeCase AS c
WHERE c.Status IN ('Pending', 'Unsure')
)
SELECT TOP (@Top) i.Kind, i.RefId, i.TargetType, i.ServerID AS ServerId, i.DatabaseName, i.QueryHash, i.ObjectName,
i.Direction, i.Confidence, i.Pending, ISNULL(i.Invalid, 0) AS Invalid, i.SinceUtc,
DATEDIFF(hour, i.SinceUtc, @NowUtc) AS AgeHours, cost.SecondsPerDay
FROM items AS i
OUTER APPLY (SELECT SUM(q.TotalDurationMs) / 1000.0 / 7 AS SecondsPerDay FROM perf.QueryDailyStats AS q
WHERE q.ServerID = i.ServerID AND q.DatabaseName = i.DatabaseName AND q.StatDateUtc >= @from
AND ((i.QueryHash IS NOT NULL AND q.query_hash = i.QueryHash)
OR (i.QueryHash IS NULL AND i.ObjectName IS NOT NULL AND q.ObjectName = i.ObjectName))) AS cost
ORDER BY ISNULL(cost.SecondsPerDay, -1) DESC, i.SinceUtc1. Etki özeti
| Metrik | Eski plan (27819) | Yeni plan (29184) | Değişim |
|---|---|---|---|
| Çalışma | 67 | 122 | |
| İptal / hata | 0 / 0 | 0 / 0 | |
| Süre ort. (ms) | 0,6 | 637,9 | +115365% |
| Süre maks. (ms) | 1,3 | 1.027,6 | +77922% |
| Süre sapma (ms) | 0,1 | 205,7 | +141222% |
| CPU ort. (ms) | 0,6 | 637,0 | +115240% |
| CPU maks. (ms) | 1,3 | 1.027,5 | +77975% |
| Mantıksal okuma ort. | 39,0 | 86.509,7 | +221720% |
| Mantıksal okuma maks. | 39,0 | 112.993,0 | +289626% |
| Fiziksel okuma | 0,0 | 0,0 | |
| Yazma | 0,0 | 0,2 | |
| Bellek (KB) | 1.024,0 | 1.024,0 | 0% |
| Tempdb (KB) | 0,0 | 5,8 | |
| DOP | 1,0 | 1,0 | 0% |
| Satır ort. | 4,0 | 186,3 | +4557% |
| Satır maks. | 4,0 | 200,0 | +4900% |
| Dönem | 1.10.2026 19:00 → 8.10.2026 20:00 | 1.10.2026 19:00 → 5.10.2026 10:00 |
Bekleme kategorileri
ms / çalışma| Bekleme kategorisi | Eski plan (27819) | Yeni plan (29184) |
|---|---|---|
| CPU | – | 1,5 |
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.QueryDailyStats.PK_QueryDailyStats | 30.09.2026 22:56 | → 4761/4761 | hayır | evet | |
| StatsUpdated | perf.QueryDailyStats._WA_Sys_00000008_5D80D6A1 | 30.09.2026 22:56 | → 4761/4761 | hayır | hayır | |
| StatsUpdated | perf.QueryDailyStats._WA_Sys_00000003_5D80D6A1 | 30.09.2026 22:56 | → 4761/4761 | hayır | evet | |
| StatsUpdated | perf.QueryDailyStats._WA_Sys_00000007_5D80D6A1 | 30.09.2026 22:56 | → 4761/4761 | hayır | hayır | |
| StatsUpdated | perf.QueryDailyStats._WA_Sys_00000004_5D80D6A1 | 30.09.2026 22:56 | → 4761/4761 | hayır | evet | |
| StatsUpdated | perf.QueryDailyStats._WA_Sys_00000015_5D80D6A1 | 30.09.2026 22:56 | → 4715/4715 | hayır | hayır | |
| StatsUpdated | perf.QueryDailyStats._WA_Sys_00000016_5D80D6A1 | 30.09.2026 22:53 | → 4761/4761 | hayır | hayır | |
| StatsUpdated | perf.QueryDailyStats._WA_Sys_00000018_5D80D6A1 | 30.09.2026 22:53 | → 4761/4761 | hayır | hayır | |
| StatsUpdated | perf.QueryDailyStats._WA_Sys_0000001B_5D80D6A1 | 30.09.2026 22:56 | → 4715/4715 | hayır | hayır | |
| StatsUpdated | perf.QueryDailyStats.IX_QueryDailyStats_Query | 30.09.2026 22:56 | → 4761/4761 | hayır | evet | |
| StatsUpdated | perf.QueryDailyStats._WA_Sys_00000006_5D80D6A1 | 30.09.2026 22:56 | → 4712/4712 | hayır | evet | |
| StatsUpdated | rag.AnalysisRecommendation.PK_AnalysisRecommendation | 30.09.2026 22:36 | → 197/197 | hayır | hayır | |
| StatsUpdated | rag.AnalysisRecommendation.IX_AnalysisRecommendation_Request | 30.09.2026 22:18 | → 197/197 | hayır | evet | |
| StatsUpdated | rag.AnalysisRecommendation._WA_Sys_0000000E_22DFFF17 | 30.09.2026 22:56 | → 197/197 | hayır | hayır | |
| StatsUpdated | rag.AnalysisRecommendation._WA_Sys_0000000A_22DFFF17 | 30.09.2026 22:53 | → 197/197 | hayır | evet | |
| StatsUpdated | rag.AnalysisRecommendation._WA_Sys_00000003_22DFFF17 | 30.09.2026 22:18 | → 197/197 | hayır | hayır | |
| StatsUpdated | rag.AnalysisRecommendation._WA_Sys_00000006_22DFFF17 | 30.09.2026 22:17 | → 197/197 | hayır | hayır | |
| StatsUpdated | rag.AnalysisRecommendation._WA_Sys_00000006_22DFFF17 | 1.10.2026 19:19 | → 198/198 | hayır | hayır | sıra belirsiz |
| StatsUpdated | rag.AnalysisRequest.PK_AnalysisRequest | 30.09.2026 22:40 | → 77/77 | hayır | hayır | |
| StatsUpdated | rag.AnalysisRequest.IX_AnalysisRequest_Status | 30.09.2026 22:52 | → 77/77 | hayır | evet | |
| StatsUpdated | rag.AnalysisRequest._WA_Sys_00000009_186270A4 | 30.09.2026 22:52 | → 78/78 | hayır | hayır | |
| StatsUpdated | rag.AnalysisRequest._WA_Sys_0000000D_186270A4 | 30.09.2026 21:37 | → 76/76 | hayır | hayır | |
| StatsUpdated | rag.AnalysisRequest._WA_Sys_0000000D_186270A4 | 1.10.2026 19:06 | → 76/76 | hayır | hayır | sıra belirsiz |
| StatsUpdated | rag.AnalysisRequest.IX_AnalysisRequest_Query | 30.09.2026 22:40 | → 69/69 | hayır | hayır | |
| StatsUpdated | rag.AnalysisRequest._WA_Sys_00000004_186270A4 | 30.09.2026 22:56 | → 77/77 | hayır | evet | |
| StatsUpdated | rag.AnalysisRequest._WA_Sys_00000005_186270A4 | 30.09.2026 22:56 | → 77/77 | hayır | evet | |
| StatsUpdated | rag.AnalysisRequest._WA_Sys_00000002_186270A4 | 30.09.2026 21:37 | → 76/76 | hayır | hayır | |
| StatsUpdated | rag.AnalysisRequest._WA_Sys_00000002_186270A4 | 1.10.2026 19:19 | → 77/77 | hayır | hayır | sıra belirsiz |
| StatsUpdated | rag.AnalysisRequest._WA_Sys_00000003_186270A4 | 30.09.2026 21:37 | → 76/76 | hayır | evet | |
| StatsUpdated | rag.AnalysisRequest._WA_Sys_00000003_186270A4 | 1.10.2026 19:19 | → 77/77 | hayır | evet | sıra belirsiz |
| StatsUpdated | rag.AnalysisRequest._WA_Sys_00000011_186270A4 | 30.09.2026 22:18 | → 77/77 | hayır | hayır | |
| StatsUpdated | rag.AnalysisRequest._WA_Sys_00000011_186270A4 | 1.10.2026 19:20 | → 77/77 | hayır | hayır | sıra belirsiz |
| StatsUpdated | rag.AnalysisRequest._WA_Sys_0000000F_186270A4 | 30.09.2026 22:36 | → 78/78 | hayır | hayır | |
| StatsUpdated | rag.AnalysisRequest._WA_Sys_00000006_186270A4 | 30.09.2026 22:37 | → 76/76 | hayır | evet | |
| StatsUpdated | rag.AnalysisRequest._WA_Sys_00000007_186270A4 | 30.09.2026 21:00 | → 78/78 | hayır | hayır | |
| StatsUpdated | rag.AnalysisRequest.IX_AnalysisRequest_PlanChangeCase | 30.09.2026 22:56 | → 77/77 | hayır | evet | |
| StatsUpdated | rag.AnalysisRequest._WA_Sys_00000018_186270A4 | 30.09.2026 21:23 | → 76/76 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase.PK_PlanChangeCase | 30.09.2026 15:53 | → 23/23 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase.IX_PlanChangeCase_Status | 30.09.2026 11:33 | → 23/23 | hayır | evet | |
| StatsUpdated | rag.PlanChangeCase.IX_PlanChangeCase_Status | 1.10.2026 19:38 | → 24/24 | hayır | evet | sıra belirsiz |
| StatsUpdated | rag.PlanChangeCase.UQ_PlanChangeCase_Pair | 30.09.2026 15:53 | → 23/23 | hayır | evet | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_00000006_25014A66 | 30.09.2026 15:53 | → 23/23 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_00000003_25014A66 | 30.09.2026 15:53 | → 23/23 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_00000004_25014A66 | 30.09.2026 15:53 | → 23/23 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_00000007_25014A66 | 30.09.2026 15:53 | → 23/23 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_0000000B_25014A66 | 30.09.2026 20:06 | → 22/22 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_0000000A_25014A66 | 30.09.2026 20:06 | → 22/22 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_00000010_25014A66 | 30.09.2026 20:57 | → 22/22 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_0000001C_25014A66 | 30.09.2026 11:03 | → 24/24 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_0000001B_25014A66 | 30.09.2026 20:31 | → 22/22 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_00000019_25014A66 | 30.09.2026 11:03 | → 24/24 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_00000025_25014A66 | 30.09.2026 20:39 | → 22/22 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_00000005_25014A66 | 30.09.2026 20:39 | → 24/24 | hayır | evet | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_00000021_25014A66 | 30.09.2026 11:04 | → 24/24 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_00000027_25014A66 | 30.09.2026 22:40 | → 26/26 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_00000016_25014A66 | 30.09.2026 22:56 | → 25/25 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_0000000E_25014A66 | 30.09.2026 10:49 | → 22/22 | hayır | hayır | |
| StatsUpdated | rag.PlanChangeCase._WA_Sys_0000001D_25014A66 | 30.09.2026 21:05 | → 22/22 | hayır | hayır |
3. Plan karşılaştırması
- Yalnız eski planda erişim: rag.AnalysisRequest Table Scan; rag.AnalysisRecommendation Table Scan; rag.PlanChangeCase Table Scan; perf.QueryDailyStats Table Scan
- Yalnız yeni planda erişim: rag.AnalysisRequest Clustered Index Scan [PK_AnalysisRequest]; rag.AnalysisRecommendation Clustered Index Scan [PK_AnalysisRecommendation]; rag.PlanChangeCase Index Seek [IX_PlanChangeCase_Status]; rag.PlanChangeCase Clustered Index Seek [PK_PlanChangeCase] (lookup); perf.QueryDailyStats Clustered Index Seek [PK_QueryDailyStats]
- Yalnız eski planda join: Nested Loops (Inner Join)
- Yalnız yeni planda join: Nested Loops (Inner Join) ×2
- Tahmini maliyet: 0.025 → 0.956; tahmini satır: 4 → 81.2
- Eski planın index'leri
- yok
- Yeni planın index'leri
- rag.AnalysisRequest.PK_AnalysisRequest, rag.AnalysisRecommendation.PK_AnalysisRecommendation, rag.PlanChangeCase.IX_PlanChangeCase_Status, rag.PlanChangeCase.PK_PlanChangeCase, perf.QueryDailyStats.PK_QueryDailyStats
4. Neden adayları
ölçüm ve eşikle; kesin değildir| Kod | Ölçülen | Eşik | Sonuç | Açıklama |
|---|---|---|---|---|
| STATS | perf.QueryDailyStats.PK_QueryDailyStats güncellendi 2026-09-30 22:56 (örnekleme %100) | değişimden önceki 48 saat | destekliyor | İstatistik perf.QueryDailyStats.PK_QueryDailyStats 2026-09-30 22:56 güncellendi (örnekleme %100); planlar bu istatistiği kullanıyor. |
| STATS | perf.QueryDailyStats._WA_Sys_00000003_5D80D6A1 güncellendi 2026-09-30 22:56 (örnekleme %100) | değişimden önceki 48 saat | destekliyor | İstatistik perf.QueryDailyStats._WA_Sys_00000003_5D80D6A1 2026-09-30 22:56 güncellendi (örnekleme %100); planlar bu istatistiği kullanıyor. |
| STATS | perf.QueryDailyStats._WA_Sys_00000004_5D80D6A1 güncellendi 2026-09-30 22:56 (örnekleme %100) | değişimden önceki 48 saat | destekliyor | İstatistik perf.QueryDailyStats._WA_Sys_00000004_5D80D6A1 2026-09-30 22:56 güncellendi (örnekleme %100); planlar bu istatistiği kullanıyor. |
| STATS | perf.QueryDailyStats.IX_QueryDailyStats_Query güncellendi 2026-09-30 22:56 (örnekleme %100) | değişimden önceki 48 saat | destekliyor | İstatistik perf.QueryDailyStats.IX_QueryDailyStats_Query 2026-09-30 22:56 güncellendi (örnekleme %100); planlar bu istatistiği kullanıyor. |
| STATS | perf.QueryDailyStats._WA_Sys_00000006_5D80D6A1 güncellendi 2026-09-30 22:56 (örnekleme %100) | değişimden önceki 48 saat | destekliyor | İstatistik perf.QueryDailyStats._WA_Sys_00000006_5D80D6A1 2026-09-30 22:56 güncellendi (örnekleme %100); planlar bu istatistiği kullanıyor. |
| STATS | rag.AnalysisRecommendation.IX_AnalysisRecommendation_Request güncellendi 2026-09-30 22:18 (örnekleme %100) | değişimden önceki 48 saat | destekliyor | İstatistik rag.AnalysisRecommendation.IX_AnalysisRecommendation_Request 2026-09-30 22:18 güncellendi (örnekleme %100); planlar bu istatistiği kullanıyor. |
| STATS | rag.AnalysisRecommendation._WA_Sys_0000000A_22DFFF17 güncellendi 2026-09-30 22:53 (örnekleme %100) | değişimden önceki 48 saat | destekliyor | İstatistik rag.AnalysisRecommendation._WA_Sys_0000000A_22DFFF17 2026-09-30 22:53 güncellendi (örnekleme %100); planlar bu istatistiği kullanıyor. |
| STATS | rag.AnalysisRequest.IX_AnalysisRequest_Status güncellendi 2026-09-30 22:52 (örnekleme %100) | değişimden önceki 48 saat | destekliyor | İstatistik rag.AnalysisRequest.IX_AnalysisRequest_Status 2026-09-30 22:52 güncellendi (örnekleme %100); planlar bu istatistiği kullanıyor. |
| STATS | rag.AnalysisRequest._WA_Sys_00000004_186270A4 güncellendi 2026-09-30 22:56 (örnekleme %100) | değişimden önceki 48 saat | destekliyor | İstatistik rag.AnalysisRequest._WA_Sys_00000004_186270A4 2026-09-30 22:56 güncellendi (örnekleme %100); planlar bu istatistiği kullanıyor. |
| STATS | rag.AnalysisRequest._WA_Sys_00000005_186270A4 güncellendi 2026-09-30 22:56 (örnekleme %100) | değişimden önceki 48 saat | destekliyor | İstatistik rag.AnalysisRequest._WA_Sys_00000005_186270A4 2026-09-30 22:56 güncellendi (örnekleme %100); planlar bu istatistiği kullanıyor. |
| STATS | rag.AnalysisRequest._WA_Sys_00000003_186270A4 güncellendi 2026-09-30 21:37 (örnekleme %100); pencerede 2 güncelleme | değişimden önceki 48 saat | destekliyor | İstatistik rag.AnalysisRequest._WA_Sys_00000003_186270A4 2026-09-30 21:37 güncellendi (örnekleme %100); pencerede 2 güncelleme; planlar bu istatistiği kullanıyor. |
| STATS | rag.AnalysisRequest._WA_Sys_00000006_186270A4 güncellendi 2026-09-30 22:37 (örnekleme %100) | değişimden önceki 48 saat | destekliyor | İstatistik rag.AnalysisRequest._WA_Sys_00000006_186270A4 2026-09-30 22:37 güncellendi (örnekleme %100); planlar bu istatistiği kullanıyor. |
| STATS | rag.AnalysisRequest.IX_AnalysisRequest_PlanChangeCase güncellendi 2026-09-30 22:56 (örnekleme %100) | değişimden önceki 48 saat | destekliyor | İstatistik rag.AnalysisRequest.IX_AnalysisRequest_PlanChangeCase 2026-09-30 22:56 güncellendi (örnekleme %100); planlar bu istatistiği kullanıyor. |
| STATS | rag.PlanChangeCase.IX_PlanChangeCase_Status güncellendi 2026-09-30 11:33 (örnekleme %100); pencerede 2 güncelleme | değişimden önceki 48 saat | destekliyor | İstatistik rag.PlanChangeCase.IX_PlanChangeCase_Status 2026-09-30 11:33 güncellendi (örnekleme %100); pencerede 2 güncelleme; planlar bu istatistiği kullanıyor. |
| STATS | rag.PlanChangeCase.UQ_PlanChangeCase_Pair güncellendi 2026-09-30 15:53 (örnekleme %100) | değişimden önceki 48 saat | destekliyor | İstatistik rag.PlanChangeCase.UQ_PlanChangeCase_Pair 2026-09-30 15:53 güncellendi (örnekleme %100); planlar bu istatistiği kullanıyor. |
| STATS | rag.PlanChangeCase._WA_Sys_00000005_25014A66 güncellendi 2026-09-30 20:39 (örnekleme %100) | değişimden önceki 48 saat | destekliyor | İstatistik rag.PlanChangeCase._WA_Sys_00000005_25014A66 2026-09-30 20:39 güncellendi (örnekleme %100); planlar bu istatistiği kullanıyor. |
| STATS | 36 istatistik güncellendi, planlar kullanmıyor | desteklemiyor | Pencerede güncellenen ama iki planın da kullanmadığı istatistikler aday değil: perf.QueryDailyStats._WA_Sys_00000008_5D80D6A1, perf.QueryDailyStats._WA_Sys_00000007_5D80D6A1, perf.QueryDailyStats._WA_Sys_00000015_5D80D6A1, perf.QueryDailyStats._WA_Sys_00000016_5D80D6A1, perf.QueryDailyStats._WA_Sys_00000018_5D80D6A1 (+31). | |
| WORKLOAD | çalışma başına satır 4 → 186.26 (46.57×) | ≥ 2× | destekliyor | Planlar farklı iş yükü görüyor: çalışma başına satır 4 → 186.26. Planlar farklı parametre/parti büyüklüğü için derlenmiş olabilir. |
| 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-10-01: 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 #P414 | DB: DB-11 | Regression | Confidence: Medium (review pending) Query: (@from datetime,@NowUtc datetime,@Top int)WITH items AS ( SELECT ? AS Kind, a.RequestID AS RefId, a.TargetType, a.ServerID, a.DatabaseName, a.QueryHash, a.ObjectName, CAST(NULL AS varchar(?)) AS Direction, CAST(NULL AS varchar(?)) AS Confidence, p.Pending, p.Invalid, a.FinishedUtc AS SinceUtc FROM rag.AnalysisRequest AS a CROSS APPLY (SELECT COUNT(*) AS Pending, SUM(IIF(r.ValidationStatus = ?)) AS Invalid FROM rag.AnalysisRecommendation AS r WHERE r.RequestID = a.RequestID AND r.Decision = ?) AS p WHERE a.Status = ? AND p.Pending > ? UNION ALL SELECT ?, c.CaseID, ?, c.ServerID, c.DatabaseName, c.query_hash, NULL, c.Direction, c.Confidence, ?, c.DetectedUtc FROM rag.PlanChangeCase AS c WHERE c.Status IN (?) ) SELECT TOP (@Top) i.Kind, i.RefId, i.TargetType, i.ServerID AS ServerId, i.DatabaseName, i.QueryHash, i.ObjectName, i.Direction, i.Confidence, i.Pending, ISNULL(i.Invalid, ?) AS Invalid, i.SinceUtc, DATEDIFF(hour, i.SinceUtc, @NowUtc) AS AgeHours, cost.SecondsPerDay FROM items AS i OUTER APPLY (SELECT SUM(q.TotalDurationMs) / ? / ? AS SecondsPerDay FROM perf.QueryDailyStats AS q WHERE q.ServerID = i.ServerID AND q.DatabaseName = i.DatabaseName AND q.StatDateUtc >= @from AND ((i.QueryHash IS NOT NULL AND q.query_hash = i.QueryHash) OR (i.QueryHash IS NULL AND i.ObjectName IS NOT NULL AND q.ObjectName = i.ObjectName))) AS cost ORDER BY ISNULL(cost.SecondsPerDay, -?) DESC, i.SinceUtc Change: 2026-10-01 19:00 UTC, plan 27819 → 29184, pattern: Alternating (5 switches) Impact (Query Store, per execution): duration 0.6 → 637.9 ms (+115365%); CPU 0.6 → 637 ms (+115240%); reads 39 → 86,510 (+221720%); rows 4 → 186.26 (+4557%) Plan difference: Access only in the old plan: rag.AnalysisRequest Table Scan; rag.AnalysisRecommendation Table Scan; rag.PlanChangeCase Table Scan; perf.QueryDailyStats Table Scan; Access only in the new plan: rag.AnalysisRequest Clustered Index Scan [PK_AnalysisRequest]; rag.AnalysisRecommendation Clustered Index Scan [PK_AnalysisRecommendation]; rag.PlanChangeCase Index Seek [IX_PlanChangeCase_Status]; rag.PlanChangeCase Clustered Index Seek [PK_PlanChangeCase] (lookup); perf.QueryDailyStats Clustered Index Seek [PK_QueryDailyStats]; Join only in the old plan: Nested Loops (Inner Join); Join only in the new plan: Nested Loops (Inner Join) ×2 Candidate cause: STATS — Statistic perf.QueryDailyStats.PK_QueryDailyStats was updated 2026-09-30 22:56 (sampled 100%); the plans use this statistic. Candidate cause: STATS — Statistic perf.QueryDailyStats._WA_Sys_00000003_5D80D6A1 was updated 2026-09-30 22:56 (sampled 100%); the plans use this statistic. Candidate cause: STATS — Statistic perf.QueryDailyStats._WA_Sys_00000004_5D80D6A1 was updated 2026-09-30 22:56 (sampled 100%); the plans use this statistic. Candidate cause: STATS — Statistic perf.QueryDailyStats.IX_QueryDailyStats_Query was updated 2026-09-30 22:56 (sampled 100%); the plans use this statistic. Candidate cause: STATS — Statistic perf.QueryDailyStats._WA_Sys_00000006_5D80D6A1 was updated 2026-09-30 22:56 (sampled 100%); the plans use this statistic. Candidate cause: STATS — Statistic rag.AnalysisRecommendation.IX_AnalysisRecommendation_Request was updated 2026-09-30 22:18 (sampled 100%); the plans use this statistic. Candidate cause: STATS — Statistic rag.AnalysisRecommendation._WA_Sys_0000000A_22DFFF17 was updated 2026-09-30 22:53 (sampled 100%); the plans use this statistic. Candidate cause: STATS — Statistic rag.AnalysisRequest.IX_AnalysisRequest_Status was updated 2026-09-30 22:52 (sampled 100%); the plans use this statistic. Candidate cause: STATS — Statistic rag.AnalysisRequest._WA_Sys_00000004_186270A4 was updated 2026-09-30 22:56 (sampled 100%); the plans use this statistic. Candidate cause: STATS — Statistic rag.AnalysisRequest._WA_Sys_00000005_186270A4 was updated 2026-09-30 22:56 (sampled 100%); the plans use this statistic. Candidate cause: STATS — Statistic rag.AnalysisRequest._WA_Sys_00000003_186270A4 was updated 2026-09-30 21:37 (sampled 100%); 2 updates in the window; the plans use this statistic. Candidate cause: STATS — Statistic rag.AnalysisRequest._WA_Sys_00000006_186270A4 was updated 2026-09-30 22:37 (sampled 100%); the plans use this statistic. Candidate cause: STATS — Statistic rag.AnalysisRequest.IX_AnalysisRequest_PlanChangeCase was updated 2026-09-30 22:56 (sampled 100%); the plans use this statistic. Candidate cause: STATS — Statistic rag.PlanChangeCase.IX_PlanChangeCase_Status was updated 2026-09-30 11:33 (sampled 100%); 2 updates in the window; the plans use this statistic. Candidate cause: STATS — Statistic rag.PlanChangeCase.UQ_PlanChangeCase_Pair was updated 2026-09-30 15:53 (sampled 100%); the plans use this statistic. Candidate cause: STATS — Statistic rag.PlanChangeCase._WA_Sys_00000005_25014A66 was updated 2026-09-30 20:39 (sampled 100%); the plans use this statistic. Candidate cause: WORKLOAD — The plans see a different workload: rows per execution 4 → 186.26. The plans may have been compiled for different parameters or batch sizes. 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-10-01: index, statistics and module events could not be evaluated (no data, not no events). Confidence rationale: Medium: more than one candidate (STATS, WORKLOAD + PARAM) — competing explanations. 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.