WEB开发网
开发学院数据库MSSQL Server SQL Server 2005性能测试之CPU篇(编译与重编译)... 阅读

SQL Server 2005性能测试之CPU篇(编译与重编译)

 2007-05-15 09:29:44 来源:WEB开发网   
核心提示: SP:Recompile事件类中的重要的数据列如下所示:◆Event Class◆EventSubClass◆ObjectID(表示包含这个语句的存储过程)◆SPID◆Start Time◆SqlHandle◆TextDataEventSubClass数据列对于确定重编译原因来说非常重要,

SP:Recompile事件类中的重要的数据列如下所示:

◆Event Class

◆EventSubClass

◆ObjectID(表示包含这个语句的存储过程)

◆SPID

◆Start Time

◆SqlHandle

◆TextData

EventSubClass数据列对于确定重编译原因来说非常重要。一旦过程或者触发器被重新编译,SP:Recompile就会被触发,但是有可能被重编译的即席批处理不会引发这个事件。 在SQL Server 2005中,监视SQL:StmtRecompiles时非常有用的,任何类型的批处理,即席查询,存储过程或者触发器被重编译时,这个事件类都会被触发。

保存trace文件,使用下面的查询来查看所有的重编译事件。

Select spid,starttime,textdata,eventsubclass,objected,databaseid,
sqlhandle from fn_trace_gettable (‘filepath.trc’,1) where EventClass in(37,75,166)

EventClass 37是SP:Recompile, 75是CursorRecompile, 166是SQL:StmtRecompile.

也可以进一步对这些查询结果根据Sqlhandle和ObjectID列进行分组来查看是否有某个存储过程存在大量的重编译或者由于其他原因导致的重编译(如Set选项变化)。

Showplan XML For Query Compile. 这个事件类在Microsoft SQL Server编译或者重新编译SQL语句时发生。这个事件中有关于被编译或者重编译的语句的信息。这些信息包括查询计划和存在问题的过程的Object ID。如果发现SQL Compilations/sec计数器数值很高,应该监视这个事件类。通过这些信息可以发现哪些语句被频繁的重编译。可以使用这些信息改变那些语句的参数。这应该会降低重新编译的次数。

DMVs

当使用sys.dn_exec_query_optimizer_info DMV时,可以得到SQL Server花费在优化上的时间。

上一页  1 2 3 4 5  下一页

Tags:SQL Server 性能

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接