小编dan*_*mes的帖子

sp_procedure_params_90_rowset 上的过度编译阻塞

这个问题在 MSDN 上再次出现:Blocked-process-report: what is this waitresource "OBJECT: 32767:124607697:0 [COMPILE]"

我在 Profiler 中发现了这些语句。它们的持续时间都超过 3 秒。一些超过 10+。阻止活动与来自MSDN的链接相同。

调用都使用 3 部分命名。都指定了一个不同的过程,它们看起来像下面这样:

exec [db1].[sys].sp_procedure_params_90_rowset N'proc1', 1, NULL, NULL
exec [db2].[sys].sp_procedure_params_90_rowset N'proc2', 1, NULL, NULL
exec [db3].[sys].sp_procedure_params_90_rowset N'proc3', 1, NULL, NULL
exec [db4].[sys].sp_procedure_params_90_rowset N'proc4', 1, NULL, NULL
Run Code Online (Sandbox Code Playgroud)

我可以做些什么来减少这种级别的阻塞?

(编辑)我现在看到同样的事情:

exec [db1].[sys].sp_primary_keys_rowset N'view1', N'dbo'
exec [db2].[sys].sp_primary_keys_rowset N'view1', N'dbo'
exec [db3].[sys].sp_primary_keys_rowset N'view1', N'dbo'
exec [db4].[sys].sp_primary_keys_rowset N'view1', N'dbo'
Run Code Online (Sandbox Code Playgroud)

有系统性的事情正在发生,但我不知道还能做什么。调用者是通过 ADO 的 VB6。是 ADO 进行这些调用。

下面是一个被阻止的进程报告示例

 <blocked-process-report>
    <blocked-process>
        <process
            id="process5bc1288"
            taskpriority="0"
            logused="0"
            waitresource="OBJECT: 32767:124607697:0 [COMPILE]" …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008-r2 blocking

15
推荐指数
1
解决办法
1534
查看次数

Sql 服务代理开始对话对话并发送。他们应该在交易中吗?

我经常看到这样的代码:

BEGIN TRANSACTION;
BEGIN DIALOG CONVERSATION @u....
SEND ...
COMMIT;
Run Code Online (Sandbox Code Playgroud)

BOL for BEGIN DIALOG 不使用示例中的事务处理,它根本没有提到事务。

是否需要交易?如果是为什么?

sql-server service-broker

5
推荐指数
1
解决办法
1811
查看次数