我正在尝试在mssql中模拟一个长时间运行的查询,以测试一些kill命令和清理操作。问题是,我想不出一种使查询长时间运行的方法。这是我目前正在做的事情:
select * from sales1 cross join sales2 cross join sales3 ...
查询会立即返回,尽管如果我执行cursor.fetchall()
可能会花很长时间才能获取结果。
在返回时,当我这样做:
cursor.execute("sp_who2 'active'")
它没有显示该查询(我想是因为它已经被“执行”了。)
有没有一种方法可以模拟仅包含100个结果的一个表的长时间运行的查询?
答案 0 :(得分:4)
waitfor语句
https://docs.microsoft.com/en-us/sql/t-sql/language-elements/waitfor-transact-sql
waitfor delay '00:01'
将等待1分钟
答案 1 :(得分:3)
在我公司中,我们收到OPEN
TRANSACTION
/ LONG QUERY
用户(甚至是DBA's
)的警报
是的,没有OPEN TRAN
/ COMMIT
的{{1}}可以使用,或者使用ROLLBACK