findDtuIncrease
flow
find loading and time
SELECT
end_time,
avg_cpu_percent,
avg_data_io_percent,
avg_log_write_percent,
avg_memory_usage_percent
FROM sys.dm_db_resource_stats
ORDER BY end_time DESC;
find SQL
DECLARE @start_time datetimeoffset = '2026-04-13 08:20:16 +00:00';
DECLARE @end_time datetimeoffset = '2026-04-13 09:05:59 +00:00';
SELECT TOP 10
qt.query_sql_text,
SUM(rs.avg_logical_io_reads * rs.count_executions) AS total_logical_reads,
SUM(rs.count_executions) AS executions,
AVG(rs.avg_duration) AS avg_duration_ms
FROM sys.query_store_runtime_stats rs
JOIN sys.query_store_plan p ON rs.plan_id = p.plan_id
JOIN sys.query_store_query q ON p.query_id = q.query_id
JOIN sys.query_store_query_text qt ON q.query_text_id = qt.query_text_id
WHERE rs.first_execution_time >= @start_time
AND rs.last_execution_time <= @end_time
GROUP BY qt.query_sql_text
ORDER BY total_logical_reads DESC;
find data io
DECLARE @start_time datetimeoffset = '2026-05-12 04:20:16 +00:00';
DECLARE @end_time datetimeoffset = '2026-05-12 05:05:59 +00:00';
SELECT TOP 10
qt.query_sql_text,
SUM((ISNULL(rs.avg_logical_io_reads,0) + ISNULL(rs.avg_logical_io_writes,0)) * rs.count_executions) AS total_logical_io_ops,
SUM(ISNULL(rs.avg_logical_io_reads,0) * rs.count_executions) AS total_logical_reads,
SUM(ISNULL(rs.avg_logical_io_writes,0) * rs.count_executions) AS total_logical_writes,
SUM(rs.count_executions) AS executions,
AVG(rs.avg_duration) AS avg_duration_ms
FROM sys.query_store_runtime_stats rs
JOIN sys.query_store_plan p ON rs.plan_id = p.plan_id
JOIN sys.query_store_query q ON p.query_id = q.query_id
JOIN sys.query_store_query_text qt ON q.query_text_id = qt.query_text_id
WHERE rs.first_execution_time >= @start_time
AND rs.last_execution_time <= @end_time
GROUP BY qt.query_sql_text
ORDER BY total_logical_io_ops DESC;
$server = "your_server"
$db = "your_db"
$outputFolder = "D:\SPs"
先抓 SP 名稱
$procedures = ssql -env fcst_dev -Q "
SET NOCOUNT ON;
SELECT QUOTENAME(SCHEMA_NAME(schema_id)) + '.' + QUOTENAME(name)
FROM sys.procedures
" -h -1
foreach ($sp in $procedures) {
$fileName = $sp.Replace('[','').Replace(']','').Replace('.','_') + ".sql"
ssql -env fcst_dev -Q "
SET NOCOUNT ON;
SELECT 'CREATE PROCEDURE ' + '$sp' + CHAR(13) + CHAR(10) + m.definition
FROM sys.sql_modules m
JOIN sys.objects o ON m.object_id = o.object_id
WHERE o.type='P' AND o.object_id = OBJECT_ID('$sp')
" -o "$outputFolder$fileName"
}