Demo modu

Plan değişimi P408

Düşük Kötüleşme 572,1× Bekliyor

DB-11 · query_id 9572 · rag.usp_PlanChange_Detect · değişim 1.10.2026 21:00 · plan 7645 → 30664 · Dönüşümlü (17 el değiştirme) · Sorgu detayı ve analizleri

Güven gerekçesiDüşük: güçlü karşı kanıt (WORK_PROPORTIONAL).

Sorgu metni

SQL
(@from datetime,@asOf datetime,@ServerID int,@DatabaseName nvarchar(128),@minExec int)SELECT rs.ServerID, rs.DatabaseName, p.query_id, rs.plan_id,
               SUM(CASE WHEN rs.execution_type = 0 THEN rs.count_executions ELSE 0 END) AS Execs,
               SUM(CASE WHEN rs.execution_type = 3 THEN rs.count_executions ELSE 0 END) AS Aborted,
               SUM(CASE WHEN rs.execution_type = 4 THEN rs.count_executions ELSE 0 END) AS Failed,
               MIN(CASE WHEN rs.execution_type = 0 THEN rs.IntervalStartUtc END) AS FirstUtc,
               MAX(CASE WHEN rs.execution_type = 0 THEN rs.IntervalEndUtc END) AS LastUtc,
               SUM(CASE WHEN rs.execution_type = 0 THEN rs.avg_duration * rs.count_executions END) AS SumDur,
               MAX(CASE WHEN rs.execution_type = 0 THEN rs.max_duration END) AS MaxDur,
               SUM(CASE WHEN rs.execution_type = 0 THEN rs.count_executions * (SQUARE(ISNULL(rs.stdev_duration, 0)) + SQUARE(rs.avg_duration)) END) AS SumSq,
               SUM(CASE WHEN rs.execution_type = 0 THEN rs.avg_cpu_time * rs.count_executions END) AS SumCpu,
               MAX(CASE WHEN rs.execution_type = 0 THEN rs.max_cpu_time END) AS MaxCpu,
               SUM(CASE WHEN rs.execution_type = 0 THEN rs.avg_logical_io_reads * rs.count_executions END) AS SumReads,
               MAX(CASE WHEN rs.execution_type = 0 THEN rs.max_logical_io_reads END) AS MaxReads,
               SUM(CASE WHEN rs.execution_type = 0 THEN rs.avg_physical_io_reads * rs.count_executions END) AS SumPhys,
               SUM(CASE WHEN rs.execution_type = 0 THEN rs.avg_logical_io_writes * rs.count_executions END) AS SumWrites,
               SUM(CASE WHEN rs.execution_type = 0 THEN rs.avg_query_max_used_memory * rs.count_executions END) AS SumMem,
               SUM(CASE WHEN rs.execution_type = 0 THEN rs.avg_tempdb_space_used * rs.count_executions END) AS SumTempdb,
               SUM(CASE WHEN rs.execution_type = 0 THEN rs.avg_dop * rs.count_executions END) AS SumDop,
               SUM(CASE WHEN rs.execution_type = 0 THEN rs.avg_rowcount * rs.count_executions END) AS SumRows,
               MAX(CASE WHEN rs.execution_type = 0 THEN rs.max_rowcount END) AS MaxRows
        INTO #ps
        FROM perf.QdsRuntimeStats AS rs
        JOIN perf.QdsPlan AS p ON p.ServerID = rs.ServerID AND p.DatabaseName = rs.DatabaseName AND p.plan_id = rs.plan_id
        JOIN DBA.MonitoredDatabase AS md ON md.ServerID = rs.ServerID AND md.DatabaseName = rs.DatabaseName
        WHERE md.IsActive = 1 AND md.CollectQds = 1
          AND rs.IntervalStartUtc >= @from AND rs.IntervalStartUtc < @asOf
          AND (@ServerID IS NULL OR rs.ServerID = @ServerID)
          AND (@DatabaseName IS NULL OR rs.DatabaseName = @DatabaseName)
        GROUP BY rs.ServerID, rs.DatabaseName, p.query_id, rs.plan_id
        HAVING SUM(CASE WHEN rs.execution_type = 0 THEN rs.count_executions ELSE 0 END) >= @minExec

1. Etki özeti

MetrikEski plan (7645)Yeni plan (30664)Değişim
Çalışma90726
İptal / hata0 / 00 / 0
Süre ort. (ms)2,41.373,1+57110%
Süre maks. (ms)34,25.322,8+15455%
Süre sapma (ms)1,2971,2+81437%
CPU ort. (ms)2,41.275,6+53132%
CPU maks. (ms)34,23.528,5+10211%
Mantıksal okuma ort.242,28.701,9+3493%
Mantıksal okuma maks.316,015.099,0+4678%
Fiziksel okuma0,01.315,0+119266912%
Yazma0,2136,1+65901%
Bellek (KB)1.024,090.437,5+8732%
Tempdb (KB)128,15.585,2+4261%
DOP1,01,00%
Satır ort.3,85.000,2+133131%
Satır maks.6,06.325,0+105317%
Dönem29.09.2026 20:00 → 8.10.2026 20:00 1.10.2026 21:00 → 8.10.2026 21:00

Bekleme kategorileri

ms / çalışma
Bekleme kategorisiEski plan (7645)Yeni plan (30664)
CPU0,089,4
Memory0,018,0
Buffer IO–8,6
Other Disk IO–0,8

2. Zaman çizelgesi

StatsUpdated perf.QdsPlan.PK_QdsPlan (2026-09-30 22:17)StatsUpdated perf.QdsPlan.PK_QdsPlan (2026-10-01 21:11)StatsUpdated perf.QdsPlan.IX_QdsPlan_Query (2026-09-30 22:17)StatsUpdated perf.QdsPlan.IX_QdsPlan_Query (2026-10-01 21:11)StatsUpdated perf.QdsPlan._WA_Sys_00000002_58671BC9 (2026-09-30 22:17)StatsUpdated perf.QdsPlan._WA_Sys_00000002_58671BC9 (2026-10-01 21:11)StatsUpdated perf.QdsPlan._WA_Sys_00000003_58671BC9 (2026-09-30 22:17)StatsUpdated perf.QdsPlan._WA_Sys_00000003_58671BC9 (2026-10-01 21:11)StatsUpdated perf.QdsPlan.IX_QdsPlan_PlanHash (2026-09-30 21:15)StatsUpdated perf.QdsPlan.IX_QdsPlan_PlanHash (2026-10-01 21:11)StatsUpdated perf.QdsPlan._WA_Sys_00000004_58671BC9 (2026-09-30 21:15)StatsUpdated perf.QdsPlan._WA_Sys_00000004_58671BC9 (2026-10-01 21:12)StatsUpdated perf.QdsPlan._WA_Sys_0000000A_58671BC9 (2026-09-30 21:15)StatsUpdated perf.QdsPlan._WA_Sys_0000000A_58671BC9 (2026-10-01 21:12)StatsUpdated perf.QdsRuntimeStats.PK_QdsRuntimeStats (2026-09-29 22:11)StatsUpdated perf.QdsRuntimeStats.PK_QdsRuntimeStats (2026-10-01 21:11)StatsUpdated perf.QdsRuntimeStats._WA_Sys_00000002_5C37ACAD (2026-09-29 22:11)StatsUpdated perf.QdsRuntimeStats._WA_Sys_00000002_5C37ACAD (2026-10-01 21:11)StatsUpdated perf.QdsRuntimeStats._WA_Sys_00000007_5C37ACAD (2026-09-30 03:30)StatsUpdated perf.QdsRuntimeStats._WA_Sys_00000007_5C37ACAD (2026-10-01 21:13)StatsUpdated perf.QdsRuntimeStats._WA_Sys_00000003_5C37ACAD (2026-09-29 22:11)StatsUpdated perf.QdsRuntimeStats._WA_Sys_00000003_5C37ACAD (2026-10-01 21:11)StatsUpdated perf.QdsRuntimeStats._WA_Sys_00000006_5C37ACAD (2026-09-29 22:11)StatsUpdated perf.QdsRuntimeStats._WA_Sys_00000006_5C37ACAD (2026-10-01 21:11)StatsUpdated perf.QdsRuntimeStats._WA_Sys_00000004_5C37ACAD (2026-09-30 00:10)StatsUpdated perf.QdsRuntimeStats._WA_Sys_00000004_5C37ACAD (2026-10-01 21:11)StatsUpdated perf.QdsRuntimeStats._WA_Sys_00000005_5C37ACAD (2026-09-30 00:10)StatsUpdated perf.QdsRuntimeStats._WA_Sys_00000005_5C37ACAD (2026-10-01 21:11)StatsUpdated perf.QdsRuntimeStats._WA_Sys_00000008_5C37ACAD (2026-09-29 22:11)StatsUpdated perf.QdsRuntimeStats._WA_Sys_00000008_5C37ACAD (2026-10-01 21:12)Değişim: 1.10.2026 21:00Eski plan 29.09.2026 20:00: 2,2 msEski plan 29.09.2026 21:00: 2,2 msEski plan 30.09.2026 00:00: 2,2 msEski plan 30.09.2026 01:00: 2,4 msEski plan 30.09.2026 02:00: 2,4 msEski plan 30.09.2026 05:00: 2,4 msEski plan 30.09.2026 06:00: 2,2 msEski plan 30.09.2026 07:00: 2,2 msEski plan 30.09.2026 10:00: 2,3 msEski plan 30.09.2026 11:00: 2,4 msEski plan 30.09.2026 15:00: 2,4 msEski plan 30.09.2026 19:00: 2,3 msEski plan 30.09.2026 20:00: 3,1 msEski plan 30.09.2026 21:00: 2,6 msEski plan 30.09.2026 22:00: 2,4 msEski plan 1.10.2026 19:00: 2,3 msEski plan 1.10.2026 20:00: 2,2 msEski plan 1.10.2026 21:00: 2,4 msEski plan 2.10.2026 00:00: 2,6 msEski plan 2.10.2026 01:00: 2,2 msEski plan 2.10.2026 02:00: 2,2 msEski plan 2.10.2026 16:00: 2,5 msEski plan 2.10.2026 17:00: 2,3 msEski plan 2.10.2026 18:00: 2,7 msEski plan 4.10.2026 08:00: 3,1 msEski plan 4.10.2026 13:00: 2,5 msEski plan 4.10.2026 22:00: 2,1 msEski plan 5.10.2026 00:00: 2,2 msEski plan 5.10.2026 02:00: 2,4 msEski plan 5.10.2026 09:00: 2,3 msEski plan 5.10.2026 10:00: 2,2 msEski plan 5.10.2026 12:00: 3,5 msEski plan 5.10.2026 13:00: 2,3 msEski plan 5.10.2026 17:00: 2,7 msEski plan 5.10.2026 18:00: 2,7 msEski plan 5.10.2026 20:00: 2,6 msEski plan 5.10.2026 21:00: 2,4 msEski plan 5.10.2026 22:00: 2,4 msEski plan 5.10.2026 23:00: 2,1 msEski plan 6.10.2026 00:00: 2,3 msEski plan 6.10.2026 01:00: 2,2 msEski plan 6.10.2026 05:00: 2,2 msEski plan 7.10.2026 13:00: 2,2 msEski plan 7.10.2026 20:00: 2,1 msEski plan 8.10.2026 12:00: 2,2 msEski plan 8.10.2026 14:00: 2,4 msEski plan 8.10.2026 16:00: 2,6 msEski plan 8.10.2026 17:00: 2,1 msEski plan 8.10.2026 18:00: 2,5 msEski plan 8.10.2026 19:00: 2,2 msYeni plan 1.10.2026 21:00: 1.817,2 msYeni plan 3.10.2026 03:00: 1.142,7 msYeni plan 4.10.2026 08:00: 952,8 msYeni plan 4.10.2026 09:00: 1.048,6 msYeni plan 4.10.2026 10:00: 857,9 msYeni plan 4.10.2026 11:00: 934,7 msYeni plan 4.10.2026 12:00: 909,4 msYeni plan 4.10.2026 14:00: 940,1 msYeni plan 4.10.2026 15:00: 997,7 msYeni plan 4.10.2026 16:00: 873,8 msYeni plan 4.10.2026 17:00: 872,6 msYeni plan 4.10.2026 18:00: 902,8 msYeni plan 4.10.2026 19:00: 914,6 msYeni plan 4.10.2026 20:00: 910,6 msYeni plan 4.10.2026 21:00: 1.122,3 msYeni plan 4.10.2026 22:00: 1.074,2 msYeni plan 4.10.2026 23:00: 1.132,2 msYeni plan 5.10.2026 03:00: 955,3 msYeni plan 5.10.2026 08:00: 1.458,1 msYeni plan 5.10.2026 09:00: 1.032,0 msYeni plan 6.10.2026 03:00: 1.342,7 msYeni plan 6.10.2026 22:00: 1.471,9 msYeni plan 7.10.2026 20:00: 3.590,1 msYeni plan 8.10.2026 08:00: 2.169,3 msYeni plan 8.10.2026 20:00: 5.322,8 msmax 5.322,8 ms 09-29 20:00 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
StatsUpdatedperf.QdsPlan.PK_QdsPlan30.09.2026 22:17 → 1985/1985 hayırevet
StatsUpdatedperf.QdsPlan.PK_QdsPlan1.10.2026 21:11 → 40256/40256 hayırevet sıra belirsiz
StatsUpdatedperf.QdsPlan.IX_QdsPlan_Query30.09.2026 22:17 → 1985/1985 hayırevet
StatsUpdatedperf.QdsPlan.IX_QdsPlan_Query1.10.2026 21:11 → 40256/40256 hayırevet sıra belirsiz
StatsUpdatedperf.QdsPlan._WA_Sys_00000002_58671BC930.09.2026 22:17 → 1985/1985 hayırevet
StatsUpdatedperf.QdsPlan._WA_Sys_00000002_58671BC91.10.2026 21:11 → 40256/40256 hayırevet sıra belirsiz
StatsUpdatedperf.QdsPlan._WA_Sys_00000003_58671BC930.09.2026 22:17 → 1985/1985 hayırevet
StatsUpdatedperf.QdsPlan._WA_Sys_00000003_58671BC91.10.2026 21:11 → 40256/40256 hayırevet sıra belirsiz
StatsUpdatedperf.QdsPlan.IX_QdsPlan_PlanHash30.09.2026 21:15 → 1980/1980 hayırevet
StatsUpdatedperf.QdsPlan.IX_QdsPlan_PlanHash1.10.2026 21:11 → 40256/40256 hayırevet sıra belirsiz
StatsUpdatedperf.QdsPlan._WA_Sys_00000004_58671BC930.09.2026 21:15 → 1980/1980 hayırhayır
StatsUpdatedperf.QdsPlan._WA_Sys_00000004_58671BC91.10.2026 21:12 → 40258/40258 hayırhayır sıra belirsiz
StatsUpdatedperf.QdsPlan._WA_Sys_0000000A_58671BC930.09.2026 21:15 → 1980/1980 hayırhayır
StatsUpdatedperf.QdsPlan._WA_Sys_0000000A_58671BC91.10.2026 21:12 → 40258/40258 hayırhayır sıra belirsiz
StatsUpdatedperf.QdsRuntimeStats.PK_QdsRuntimeStats29.09.2026 22:11 → 36991/42406 hayırevet
StatsUpdatedperf.QdsRuntimeStats.PK_QdsRuntimeStats1.10.2026 21:11 → 45913/140434 hayırevet sıra belirsiz
StatsUpdatedperf.QdsRuntimeStats._WA_Sys_00000002_5C37ACAD29.09.2026 22:11 → 36991/42406 hayırevet
StatsUpdatedperf.QdsRuntimeStats._WA_Sys_00000002_5C37ACAD1.10.2026 21:11 → 45913/140434 hayırevet sıra belirsiz
StatsUpdatedperf.QdsRuntimeStats._WA_Sys_00000007_5C37ACAD30.09.2026 03:30 → 37160/42690 hayırhayır
StatsUpdatedperf.QdsRuntimeStats._WA_Sys_00000007_5C37ACAD1.10.2026 21:13 → 45952/140533 hayırhayır sıra belirsiz
StatsUpdatedperf.QdsRuntimeStats._WA_Sys_00000003_5C37ACAD29.09.2026 22:11 → 36991/42406 hayırevet
StatsUpdatedperf.QdsRuntimeStats._WA_Sys_00000003_5C37ACAD1.10.2026 21:11 → 45913/140434 hayırevet sıra belirsiz
StatsUpdatedperf.QdsRuntimeStats._WA_Sys_00000006_5C37ACAD29.09.2026 22:11 → 36991/42406 hayırhayır
StatsUpdatedperf.QdsRuntimeStats._WA_Sys_00000006_5C37ACAD1.10.2026 21:11 → 45913/140434 hayırhayır sıra belirsiz
StatsUpdatedperf.QdsRuntimeStats._WA_Sys_00000004_5C37ACAD30.09.2026 00:10 → 37063/42489 hayırhayır
StatsUpdatedperf.QdsRuntimeStats._WA_Sys_00000004_5C37ACAD1.10.2026 21:11 → 45913/140434 hayırhayır sıra belirsiz
StatsUpdatedperf.QdsRuntimeStats._WA_Sys_00000005_5C37ACAD30.09.2026 00:10 → 37063/42489 hayırhayır
StatsUpdatedperf.QdsRuntimeStats._WA_Sys_00000005_5C37ACAD1.10.2026 21:11 → 45913/140434 hayırhayır sıra belirsiz
StatsUpdatedperf.QdsRuntimeStats._WA_Sys_00000008_5C37ACAD29.09.2026 22:11 → 36991/42406 hayırhayır
StatsUpdatedperf.QdsRuntimeStats._WA_Sys_00000008_5C37ACAD1.10.2026 21:12 → 45962/140525 hayırhayır sıra belirsiz

3. Plan karşılaştırması

  • Yalnız eski planda erişim: perf.QdsPlan Table Scan; DBA.MonitoredDatabase Table Scan; perf.QdsRuntimeStats Table Scan
  • Yalnız yeni planda erişim: perf.QdsPlan Clustered Index Scan [PK_QdsPlan]; DBA.MonitoredDatabase Clustered Index Scan [PK_MonitoredDatabase]; perf.QdsRuntimeStats Clustered Index Seek [PK_QdsRuntimeStats]
  • Yalnız eski planda join: Nested Loops (Inner Join) ×2
  • Yalnız yeni planda join: Merge Join (Inner Join); Nested Loops (Inner Join)
  • Yalnız yeni planda uyarı: ColumnsWithNoStatistics
  • Tahmini maliyet: 0.033 → 2.468; tahmini satır: 1 → 1185.7
Eski planın index'leri
yok
Yeni planın index'leri
perf.QdsPlan.PK_QdsPlan, DBA.MonitoredDatabase.PK_MonitoredDatabase, perf.QdsRuntimeStats.PK_QdsRuntimeStats

4. Neden adayları

ölçüm ve eşikle; kesin değildir
KodÖlçülenEşikSonuçAçıklama
STATS perf.QdsPlan.PK_QdsPlan güncellendi 2026-09-30 22:17 (örnekleme %100); pencerede 2 güncellemedeğişimden önceki 48 saat destekliyor İstatistik perf.QdsPlan.PK_QdsPlan 2026-09-30 22:17 güncellendi (örnekleme %100); pencerede 2 güncelleme; planlar bu istatistiği kullanıyor.
STATS perf.QdsPlan.IX_QdsPlan_Query güncellendi 2026-09-30 22:17 (örnekleme %100); pencerede 2 güncellemedeğişimden önceki 48 saat destekliyor İstatistik perf.QdsPlan.IX_QdsPlan_Query 2026-09-30 22:17 güncellendi (örnekleme %100); pencerede 2 güncelleme; planlar bu istatistiği kullanıyor.
STATS perf.QdsPlan._WA_Sys_00000002_58671BC9 güncellendi 2026-09-30 22:17 (örnekleme %100); pencerede 2 güncellemedeğişimden önceki 48 saat destekliyor İstatistik perf.QdsPlan._WA_Sys_00000002_58671BC9 2026-09-30 22:17 güncellendi (örnekleme %100); pencerede 2 güncelleme; planlar bu istatistiği kullanıyor.
STATS perf.QdsPlan._WA_Sys_00000003_58671BC9 güncellendi 2026-09-30 22:17 (örnekleme %100); pencerede 2 güncellemedeğişimden önceki 48 saat destekliyor İstatistik perf.QdsPlan._WA_Sys_00000003_58671BC9 2026-09-30 22:17 güncellendi (örnekleme %100); pencerede 2 güncelleme; planlar bu istatistiği kullanıyor.
STATS perf.QdsPlan.IX_QdsPlan_PlanHash güncellendi 2026-09-30 21:15 (örnekleme %100); pencerede 2 güncellemedeğişimden önceki 48 saat destekliyor İstatistik perf.QdsPlan.IX_QdsPlan_PlanHash 2026-09-30 21:15 güncellendi (örnekleme %100); pencerede 2 güncelleme; planlar bu istatistiği kullanıyor.
STATS perf.QdsRuntimeStats.PK_QdsRuntimeStats güncellendi 2026-09-29 22:11 (örnekleme %87.2); pencerede 2 güncellemedeğişimden önceki 48 saat destekliyor İstatistik perf.QdsRuntimeStats.PK_QdsRuntimeStats 2026-09-29 22:11 güncellendi (örnekleme %87.2); pencerede 2 güncelleme; planlar bu istatistiği kullanıyor.
STATS perf.QdsRuntimeStats._WA_Sys_00000002_5C37ACAD güncellendi 2026-09-29 22:11 (örnekleme %87.2); pencerede 2 güncellemedeğişimden önceki 48 saat destekliyor İstatistik perf.QdsRuntimeStats._WA_Sys_00000002_5C37ACAD 2026-09-29 22:11 güncellendi (örnekleme %87.2); pencerede 2 güncelleme; planlar bu istatistiği kullanıyor.
STATS perf.QdsRuntimeStats._WA_Sys_00000003_5C37ACAD güncellendi 2026-09-29 22:11 (örnekleme %87.2); pencerede 2 güncellemedeğişimden önceki 48 saat destekliyor İstatistik perf.QdsRuntimeStats._WA_Sys_00000003_5C37ACAD 2026-09-29 22:11 güncellendi (örnekleme %87.2); pencerede 2 güncelleme; planlar bu istatistiği kullanıyor.
STATS 7 istatistik güncellendi, planlar kullanmıyor desteklemiyor Pencerede güncellenen ama iki planın da kullanmadığı istatistikler aday değil: perf.QdsPlan._WA_Sys_00000004_58671BC9, perf.QdsPlan._WA_Sys_0000000A_58671BC9, perf.QdsRuntimeStats._WA_Sys_00000007_5C37ACAD, perf.QdsRuntimeStats._WA_Sys_00000006_5C37ACAD, perf.QdsRuntimeStats._WA_Sys_00000004_5C37ACAD (+2).
WORKLOAD çalışma başına satır 3.75 → 5000.19 (1332.31×)≥ 2× destekliyor Planlar farklı iş yükü görüyor: çalışma başına satır 3.75 → 5000.19. Planlar farklı parametre/parti büyüklüğü için derlenmiş olabilir.
PARAM baskın plan 17 kez el değiştirdi≥ 3 destekliyor İki plan aynı dönemde sırayla kullanılıyor (17 el değiştirme): plan seçimi bir olaydan çok parametre değerine bağlı (parametre duyarlılığı).

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 #P408 | DB: DB-11 | Regression | Confidence: Low (review pending)
Query: (@from datetime,@asOf datetime,@ServerID int,@DatabaseName nvarchar(?),@minExec int)SELECT rs.ServerID, rs.DatabaseName, p.query_id, rs.plan_id, SUM(CASE WHEN rs.execution_type = ? THEN rs.count_executions ELSE ? END) AS Execs, SUM(CASE WHEN rs.execution_type = ? THEN rs.count_executions ELSE ? END) AS Aborted, SUM(CASE WHEN rs.execution_type = ? THEN rs.count_executions ELSE ? END) AS Failed, MIN(CASE WHEN rs.execution_type = ? THEN rs.IntervalStartUtc END) AS FirstUtc, MAX(CASE WHEN rs.execution_type = ? THEN rs.IntervalEndUtc END) AS LastUtc, SUM(CASE WHEN rs.execution_type = ? THEN rs.avg_duration * rs.count_executions END) AS SumDur, MAX(CASE WHEN rs.execution_type = ? THEN rs.max_duration END) AS MaxDur, SUM(CASE WHEN rs.execution_type = ? THEN rs.count_executions * (SQUARE(ISNULL(rs.stdev_duration, ?)) + SQUARE(rs.avg_duration)) END) AS SumSq, SUM(CASE WHEN rs.execution_type = ? THEN rs.avg_cpu_time * rs.count_executions END) AS SumCpu, MAX(CASE WHEN rs.execution_type = ? THEN rs.max_cpu_time END) AS MaxCpu, SUM(CASE WHEN rs.execution_type = ? THEN rs.avg_logical_io_reads * rs.count_executions END) AS SumReads, MAX(CASE WHEN rs.execution_type = ? THEN rs.max_logical_io_reads END) AS MaxReads, SUM(CASE WHEN rs.execution_type = ? THEN rs.avg_physical_io_reads * rs.count_executions END) AS SumPhys, SUM(CASE WHEN rs.execution_type = ? THEN rs.avg_logical_io_writes * rs.count_executions END) AS SumWrites, SUM(CASE WHEN rs.execution_type = ? THEN rs.avg_query_max_used_memory * rs.count_executions END) AS SumMem, SUM(CASE WHEN rs.execution_type = ? THEN rs.avg_tempdb_space_used * rs.count_executions END) AS SumTempdb, SUM(CASE WHEN rs.execution_type = ? THEN rs.avg_dop * rs.count_executions END) AS SumDop, SUM(CASE WHEN rs.execution_type = ? THEN rs.avg_rowcount * rs.count_executions END) AS SumRows, MAX(CASE WHEN rs.execution_type = ? THEN rs.max_rowcount END) AS MaxRows INTO #ps FROM perf.QdsRuntimeStats AS rs JOIN perf.QdsPlan AS p ON p.ServerID = rs.ServerID AND p.DatabaseName = rs.DatabaseName AND p.plan_id = rs.plan_id JOIN DBA.MonitoredDatabase AS md ON md.ServerID = rs.ServerID AND md.DatabaseName = rs.DatabaseName WHERE md.IsActive = ? AND md.CollectQds = ? AND rs.IntervalStartUtc >= @from AND rs.IntervalStartUtc < @asOf AND (@ServerID IS NULL OR rs.ServerID = @ServerID) AND (@DatabaseName IS NULL OR rs.DatabaseName = @DatabaseName) GROUP BY rs.ServerID, rs.DatabaseName, p.query_id, rs.plan_id HAVING SUM(CASE WHEN rs.execution_type = ? THEN rs.count_executions ELSE ? END) >= @minExec
Change: 2026-10-01 21:00 UTC, plan 7645 → 30664, pattern: Alternating (17 switches)
Impact (Query Store, per execution): duration 2.4 → 1373.1 ms (+57110%); CPU 2.4 → 1275.6 ms (+53132%); reads 242 → 8,702 (+3493%); rows 3.75 → 5000.19 (+133131%)
Plan difference: Access only in the old plan: perf.QdsPlan Table Scan; DBA.MonitoredDatabase Table Scan; perf.QdsRuntimeStats Table Scan; Access only in the new plan: perf.QdsPlan Clustered Index Scan [PK_QdsPlan]; DBA.MonitoredDatabase Clustered Index Scan [PK_MonitoredDatabase]; perf.QdsRuntimeStats Clustered Index Seek [PK_QdsRuntimeStats]; Join only in the old plan: Nested Loops (Inner Join) ×2; Join only in the new plan: Merge Join (Inner Join); Nested Loops (Inner Join)
Candidate cause: STATS — Statistic perf.QdsPlan.PK_QdsPlan was updated 2026-09-30 22:17 (sampled 100%); 2 updates in the window; the plans use this statistic.
Candidate cause: STATS — Statistic perf.QdsPlan.IX_QdsPlan_Query was updated 2026-09-30 22:17 (sampled 100%); 2 updates in the window; the plans use this statistic.
Candidate cause: STATS — Statistic perf.QdsPlan._WA_Sys_00000002_58671BC9 was updated 2026-09-30 22:17 (sampled 100%); 2 updates in the window; the plans use this statistic.
Candidate cause: STATS — Statistic perf.QdsPlan._WA_Sys_00000003_58671BC9 was updated 2026-09-30 22:17 (sampled 100%); 2 updates in the window; the plans use this statistic.
Candidate cause: STATS — Statistic perf.QdsPlan.IX_QdsPlan_PlanHash was updated 2026-09-30 21:15 (sampled 100%); 2 updates in the window; the plans use this statistic.
Candidate cause: STATS — Statistic perf.QdsRuntimeStats.PK_QdsRuntimeStats was updated 2026-09-29 22:11 (sampled 87.2%); 2 updates in the window; the plans use this statistic.
Candidate cause: STATS — Statistic perf.QdsRuntimeStats._WA_Sys_00000002_5C37ACAD was updated 2026-09-29 22:11 (sampled 87.2%); 2 updates in the window; the plans use this statistic.
Candidate cause: STATS — Statistic perf.QdsRuntimeStats._WA_Sys_00000003_5C37ACAD was updated 2026-09-29 22:11 (sampled 87.2%); 2 updates in the window; the plans use this statistic.
Candidate cause: WORKLOAD — The plans see a different workload: rows per execution 3.75 → 5000.19. The plans may have been compiled for different parameters or batch sizes.
Candidate cause: PARAM — The two plans alternate in the same period (17 switches): plan choice depends on the parameter value rather than an event (parameter sensitivity).
Counter-evidence: WORK_PROPORTIONAL — Rows per execution changed 1332.31× and duration 572.1×; duration per row 0.6395 → 0.2746 ms: the duration difference comes from the amount of data processed, not the plan.
Counter-evidence: LOW_SAMPLE — The new plan ran only 26 times: the sample is small and the average is weak.
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: Low: strong counter-evidence (WORK_PROPORTIONAL).
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.