有没有办法在脚本中暂停或等待片刻?

RLH*_*RLH 8 t-sql sql-server sql-server-2005

我会认为什么我要问通常会下降"不好的做法"的范畴,但我要问不管,因为此功能是用于诊断问题和替补席上标记长时间运行的脚本很有用.

简而言之,是否有一个内置于SQL Server中的函数可以让我在短时间内"暂停"?

我有一个夜间SSIS过程,在导出数据后生成各种统计数据子集.每当我遇到SSIS包的执行时间问题时,我都会调用一系列诊断存储过程来帮助诊断哪些导出/批量插入需要特别长的时间才能执行.

在我的SSIS过程的后半部分,我生成统计数据,如果我可以分析过程可能会陷入困境或分析修改数据表中数据的速度,那将是非常有益的.大多数静态过程首先将数据插入到通过WHILE循环循环的表中,并在满足必要条件时进行更新.

在我的统计存储过程正在执行时,我可以轻松地查询我的数据以捕获特定的指标.我想要做的是获取该指标,等待1秒钟(或一段特定的时间)并再次获取指标,以便我可以比较它们.

通过能够实现"暂停",我可以创建更强大的诊断脚本,从而确定每秒开始执行多少次插入,更新或计算,从而可以估计我的更大程序的哪些部分花费的时间最长.

我假设可能有一些诊断工具可以在SQL Server Management Studio中使用.我承认,我没有修改任何一个.但是,通常如果SSMS中有一个工具,很多后端功能都可以通过某种形式的花哨脚本来模仿.另一种可能的限制使用任何内置的诊断是,我宁愿当SSIS包运行的不只是当我测试包内执行该存储过程运行这些指标.

谢谢你的任何解决方案或提示!这个请求是没有必要的100%,但我每晚SSIS包正在成为巨大的,我不得不开始微调"squeeky轮子",我已经能够在过去的忽略.

ype*_*eᵀᴹ 15

也许你正在寻找WAITFOR DELAY


gbn*_*gbn 8

您将使用WAITFOR DELAY语句


小智 8

选择Getdate() - 等待10秒钟以运行另一个命令

WAITFOR DELAY '00:00:10'; --accept value hh:mm:ss

选择GetDate()