优的。使用DMV分析SQLServer启动以来做read最多的语句--按照物理IO前50排序(自sqlserver启动以来在动态视图统计的执行计划,如果内存不足,则该视图可能不能完全包含所有的查询缓存)SELECTTOP50qs.total_physical_reads,qs.execution_count,qs.total_physical_reads/qs.execution_countAS[AvgIO],SUBSTRING(qt.[text],qs.statement_start_offset/2,(CASEWHENqs.statement_end_offset=-1THENLEN(CONVERT(NVARCHAR(MAX),qt.text))*2ELSEqs.statement_end_offsetEND-qs.statement_start_offset)/2)ASquery_text,qt.dbid,dbname=DB_NAME(qt.dbid),qt.objectid,qs.sql_handle,qs.plan_handleFROMsys.dm_exec_query_statsqsCROSSAPPLYsys.dm_exec_sql_text(qs.sql_handle)ASqtORDERBYqs.total_physical_readsDESC2.使用SQLTrace文件来分析某一段时间内做read最多的语句。对于执行trace的trace文件使用SELECT*INTOSAMPLEFROMfn_trace_gettable(SAMPLE\a.trc,DEFAULT)WHEREeventclassIN(10,12)10:pleted在完成了远程过程调用(RPC)时发生。一般是一些存储过程调用。12:SQL:pleted在完成了TransactSQL批处理时发生.