Sql server 如何创建慢速视图?
我想测试我的MS Access应用程序(使用链接表)的超时行为。使用慢速数据库查询将非常方便。如果可能,即使使用预定义的查询持续时间 我试过这个:Sql server 如何创建慢速视图?,sql-server,performance,sql-server-2012,query-performance,Sql Server,Performance,Sql Server 2012,Query Performance,我想测试我的MS Access应用程序(使用链接表)的超时行为。使用慢速数据库查询将非常方便。如果可能,即使使用预定义的查询持续时间 我试过这个: CREATE VIEW slow_view AS WAITFOR DELAY '00:01:05' SELECT 1 AS one 但是在tsql视图定义中不允许使用WAITFOR 如何在SQL Server中创建导致超时的慢速数据库视图?一个选项是锁定表。 在SSMS或其他工具中,使用begin事务执行查询,但不包括commit或rollback
CREATE VIEW slow_view AS
WAITFOR DELAY '00:01:05'
SELECT 1 AS one
但是在tsql视图定义中不允许使用WAITFOR
如何在SQL Server中创建导致超时的慢速数据库视图?一个选项是锁定表。 在SSMS或其他工具中,使用begin事务执行查询,但不包括commit或rollback
BEGIN TRAN
SELECT *
FROM MyTable with(tablockx)
然后尝试从不同会话访问同一个表,它将等待事务完成/回滚
在SSMS中,左侧是锁定查询,右侧是阻塞查询。
要停止阻塞查询,您可以在锁定查询会话中执行
COMMIT
,方法是选择COMMIT
并执行它F5。AVIEW
只是一个由SELECT
定义的虚拟表。它不能有像WAITFOR
这样的命令,它可以有一个单独的语句来生成SELECT
。这听起来像是一个,但如果必须这样做,请使用不同的对象类型,如存储过程。@Larnu MS Access链接表只能是表或视图。存储过程是不可能的。超级方便,因为我可以在需要查询返回时手动定义。或者,您可以在选择之后放置一个waitfordelay'00:01:05'回滚
,时间为预定义的持续时间。回滚大部分是单线程的,因此最好提交。对于这个语句来说,这无关紧要,因为事务日志保持不变,只是为了将来参考。