我对Server 2008进行了压力测试,我想知道由于临时表和变量的使用,流向tempdb的数据流是什么。
统计数据也显示在活动监视器中:

是否有可能以某种方式记录这些数据,然后进行分析?我想到了两个案例:
发布于 2011-03-29 21:57:25
写入数据库并不等于1比1与磁盘IO。数据库只更新内存中的脏页,这些页后来被懒惰的作者或检查点复制到磁盘上。唯一写入磁盘的是写在日志中的活动,每个数据库计数器都有一个特定的日志活动:日志字节刷新/秒。注意,tempdb有特殊的日志记录需求,因为它从未恢复过,所以它只需要撤消信息。无论是在检查点还是由懒人编写,每当脏页被实际刷新时,也会有特定的计数器:检查点页/秒和懒惰写/秒。这些不是每个数据库,因为这些活动本身并不是“每个数据库”。最后,还有虚拟文件stats:sys.dm_io_virtual_file_stats,它为每个数据库的每个单独文件提供了IO操作的聚合数和字节数,包括tempdb。
您提到您希望度量临时表和表变量的特定影响,但是您将无法将它们与tempdb活动的其余部分(排序假脱机、工作表等)分开。我建议您检查一下在Server 2005中使用tempdb,因为它仍然适用于SQL2008。
发布于 2011-03-29 13:25:58
如果使用性能监视器(perfmon.exe)监视Server计数器,则可以将其配置为记录到要在Excel中进行分析的.csv文件(例如)
所讨论的性能计数器是SQLServer:数据库下的数据文件大小
发布于 2011-03-29 14:36:57
我将使用加载到表中的定期间隔“快照”(使用下面的DMV)来确定tempDB的内部用法。
sys.all_objects
sys.dm_db_file_space_usage
sys.dm_db_task_space_usagesys.dm_db_task_space_usage将按SPID等方式分解使用情况。
https://stackoverflow.com/questions/5473138
复制相似问题