如何估算SQL query完成百分比

SQL Server中没有内置或现成的方法去估算query完成的百分比或估算运行时间/剩下的运行时间。这篇文章仅对有兴趣研究的同学提供一些参考。


1, 首先我们可以先看看两篇关于如何估算query完成百分比的论文:

http://research.microsoft.com/pubs/76556/progress.pdf

http://pages.cs.wisc.edu/~naughton/includes/papers/increasingaccuracy.pdf


2,另外值得注意的是sys.dm_exec_requests中有percent_complete,但是大部分session该值都为零。因为这个字段只对特殊的command有效。

Percentage of work completed for the following commands:

  • ALTER INDEX REORGANIZE

  • AUTO_SHRINK option with ALTER DATABASE

  • BACKUP DATABASE

  • DBCC CHECKDB

  • DBCC CHECKFILEGROUP

  • DBCC CHECKTABLE

  • DBCC INDEXDEFRAG

  • DBCC SHRINKDATABASE

  • DBCC SHRINKFILE

  • RECOVERY

  • RESTORE DATABASE,

  • ROLLBACK

  • TDE ENCRYPTION

3,还有一个思路是借助SQL Server Operating System Related Dynamic Management Views (Transact-SQL)

http://msdn.microsoft.com/en-us/library/ms176083.aspx

例如sys.dm_os_tasks可以查询一个session的“Total byte count of I/Os that are performed by this task.” 我们是否可以结合query的执行计划中预估的磁盘IO来估算query的完成情况?有待研究。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值