我在存储过程中有一个复杂的查询。在 proc 本身中,我想判断事情需要多长时间,如果我认为已经超过 30 秒的阈值(这将迫使人们进行一些优化),则执行 RAISERROR。
任何人都可以在 TSQL 代码中说出一种体面的方式来实现这一点吗?
谢谢。
我在存储过程中有一个复杂的查询。在 proc 本身中,我想判断事情需要多长时间,如果我认为已经超过 30 秒的阈值(这将迫使人们进行一些优化),则执行 RAISERROR。
任何人都可以在 TSQL 代码中说出一种体面的方式来实现这一点吗?
谢谢。
set query_governor_cost_limit
您可以在开始可能代价高昂的查询之前发出一个。但是,我相信这会在查询开始之前取消查询(如果估计花费太长时间),而不是在实际达到限制时取消它。