
# RDS SQL Server支持DMV动态管理视图
RDS for SQL Server支持DMV动态管理视图，方便用户快速查询实例上性能消耗最高的10条SQL语句。
#### 操作场景
- 数据库执行效率较低。
- 某些时段的CPU，IO较高。
 
#### 操作步骤
1. 登录SQL SERVER客户端，通过rdsuser账号连接目标实例，在管理面中执行以下SQL语句。 
   ```
   declare @DatabaseName nvarchar(100)
   set @DatabaseName = 'Wisdom_TT_ODS'
   select top 100
   DB_NAME(st.dbid) as DBName, OBJECT_NAME(st.objectid,st.dbid) as ObjectName,
   substring(st.text,(qs.statement_start_offset/2)+1,((case qs.statement_end_offset when -1 then datalength(st.text) else qs.statement_end_offset end - qs.statement_start_offset)/2) + 1) as Statement,
   st.text as Query,
   qp.query_plan,
   plan_generation_num,
   creation_time,
   last_execution_time,
   execution_count,
   total_worker_time,
   min_worker_time,
   max_worker_time,
   total_logical_reads,
   min_logical_reads,
   max_logical_reads,
   total_elapsed_time,
   min_elapsed_time,
   max_elapsed_time,
   total_rows,
   min_rows,
   max_rows,
   total_worker_time/execution_count as avg_worker_time,                            --平均CPU耗时
   total_logical_reads/execution_count as avg_logical_reads,                        --平均逻辑读
   total_elapsed_time/execution_count as avg_elapsed_time,                          --平均总耗时
   total_rows/execution_count as avg_rows,                                          --平均处理数据行
   sql_handle,
   plan_handle,
   query_hash,
   query_plan_hash
   from sys.dm_exec_query_stats qs
   cross apply sys.dm_exec_sql_text(plan_handle) st
   cross apply sys.dm_exec_query_plan(plan_handle) qp
   where st.dbid=DB_ID(@DatabaseName)
   and text not like '%sys.%' and text not like '%[[]sys]%'
   order by avg_worker_time desc
   ```
   
   
2. 查看结果中对应数据库的SQL执行记录及资源消耗情况。
 
