首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server 2008:用于Server的数据文件IO计数器*

Server 2008:用于Server的数据文件IO计数器*
EN

Stack Overflow用户
提问于 2011-03-29 13:19:06
回答 3查看 1K关注 0票数 0

我对Server 2008进行了压力测试,我想知道由于临时表和变量的使用,流向tempdb的数据流是什么。

统计数据也显示在活动监视器中:

是否有可能以某种方式记录这些数据,然后进行分析?我想到了两个案例:

  1. 记录Server计数器(我不知道它的名称是哪个)
  2. 以某种方式记录活动监视器中的数据
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-29 21:57:25

写入数据库并不等于1比1与磁盘IO。数据库只更新内存中的脏页,这些页后来被懒惰的作者或检查点复制到磁盘上。唯一写入磁盘的是写在日志中的活动,每个数据库计数器都有一个特定的日志活动:日志字节刷新/秒。注意,tempdb有特殊的日志记录需求,因为它从未恢复过,所以它只需要撤消信息。无论是在检查点还是由懒人编写,每当脏页被实际刷新时,也会有特定的计数器:检查点页/秒懒惰写/秒。这些不是每个数据库,因为这些活动本身并不是“每个数据库”。最后,还有虚拟文件stats:sys.dm_io_virtual_file_stats,它为每个数据库的每个单独文件提供了IO操作的聚合数和字节数,包括tempdb。

您提到您希望度量临时表和表变量的特定影响,但是您将无法将它们与tempdb活动的其余部分(排序假脱机、工作表等)分开。我建议您检查一下在Server 2005中使用tempdb,因为它仍然适用于SQL2008。

票数 2
EN

Stack Overflow用户

发布于 2011-03-29 13:25:58

如果使用性能监视器(perfmon.exe)监视Server计数器,则可以将其配置为记录到要在Excel中进行分析的.csv文件(例如)

所讨论的性能计数器是SQLServer:数据库下的数据文件大小

票数 0
EN

Stack Overflow用户

发布于 2011-03-29 14:36:57

我将使用加载到表中的定期间隔“快照”(使用下面的DMV)来确定tempDB的内部用法。

代码语言:javascript
复制
sys.all_objects 
sys.dm_db_file_space_usage
sys.dm_db_task_space_usage

sys.dm_db_task_space_usage将按SPID等方式分解使用情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5473138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档