Hallo,
Als u een traagheidsklacht van een klant heeft gekregen, moet u de SQL Server-instantie en database controleren welke sql veel bronnen gebruikt.
SQL Server DBA moet de database elke keer controleren en als er veel sqls zijn die een lange uitvoeringstijd hebben of veel IO-bronnen verbruiken, moet dit worden gerapporteerd aan de ontwikkelaar en ontwikkelaar en moet dba deze sqls onderzoeken.
U kunt TOP 50 IO-query's vinden in de SQL Server-database met de volgende query.
select q.[text], SUBSTRING(q.text, (highest_cpu_queries.statement_start_offset/2)+1, ((CASE highest_cpu_queries.statement_end_offset WHEN -1 THEN DATALENGTH(q.text) ELSE highest_cpu_queries.statement_end_offset END - highest_cpu_queries.statement_start_offset)/2) + 1) AS statement_text, highest_cpu_queries.total_worker_time, highest_cpu_queries.total_logical_reads, highest_cpu_queries.last_execution_time, highest_cpu_queries.execution_count, q.dbid, q.objectid, q.number, q.encrypted, highest_cpu_queries.plan_handle from (select top 50 qs.last_execution_time, qs.execution_count, qs.plan_handle, qs.total_worker_time, qs.statement_start_offset, qs.statement_end_offset, qs.total_logical_reads from sys.dm_exec_query_stats qs order by qs.total_worker_time desc) as highest_cpu_queries cross apply sys.dm_exec_sql_text(plan_handle) as q order by highest_cpu_queries.total_logical_reads desc;