10 2010 档案
使用powershell计算性能计数器的均值
摘要:[代码]不知道哪里出了错误, Avg.Disk sec/Write这个计数器的值和打开blg文件得到的平均值严重不符...貌似不是代码的问题,将blg到处成csv格式,计算均值,也和双击打开的值不符...其它的性能技术器都还比较准确,只有Avg.Disk sec/Write不对 阅读全文
posted @ 2010-10-28 23:01 stswordman 阅读(518) 评论(0) 推荐(0) 编辑
SERIALIZABLE中的锁
摘要:在SERIALIZABLE隔离级别下,sqlserver不但会锁定选择范围内的值,还会将锁定范围以外"紧邻"的值。脚本如下[代码]接下来选取范围从1到5的值,实际上会返回两行值,1,5[代码]结合sys.dm_tran_locks和%%lockres%%,我们可以看到,1,5,7这三个键值上都有range lock,也就是说如果有其他session尝试在1~7的范围内插入值,会被阻塞。虽然-10没有锁,但尝试插入-10~0这些值的时候,也会被阻塞(如果查看sys.dm_tran_locks和%%lockres%%的话,会发现在是被阻塞到了1这个资源上)要命的还在后面,如果选择如下范围: [代码 阅读全文
posted @ 2010-10-25 22:31 stswordman 阅读(712) 评论(0) 推荐(0) 编辑
计算服务器中cache plan的大小1
摘要:可以使用性能计数器, \sqlserver:plan cache(temporary tables & table variables)\cache pages \sqlserver:plan cache(extended stored procedures)\cache pages \sqlserver:plan cache(bound trees)\cache pages \sqlse... 阅读全文
posted @ 2010-10-20 23:43 stswordman 阅读(554) 评论(2) 推荐(0) 编辑
同一存储过程中各个语句的执行次数不同(sys.dm_exec_query_stats)
摘要:执行下面这个语句[代码]得到下面这个结果虽然各个语句之间为顺序执行的关系,并且没有'if else'导致的语句跳过,但发现三条语句的执行次数(execution_count)不同,创建时间和最后执行时间也不同.后来发现第2条和第3条语句所涉及的表的数据量变化很大,导致语句级的重编译,使得产生差异存储过程大致的逻辑如下:[代码] 阅读全文
posted @ 2010-10-20 13:46 stswordman 阅读(996) 评论(0) 推荐(0) 编辑
如何找到sql语句对应的存储过程?
摘要:大量的存储过程中包含有动态sql,这样的存储过程每次遇到不同的参数都会产生一个新的执行计划,一个时间段内plan cache内包含大量的执行计划,虽然很多都对应同一个存储过程.http://social.msdn.microsoft.com/Forums/en-US/sqldatabaseengine/thread/5bd1c44a-c4ea-44e4-9e5d-f03e8719ce7c下面这个查... 阅读全文
posted @ 2010-10-18 14:43 stswordman 阅读(508) 评论(0) 推荐(0) 编辑