gpt4 book ai didi

sql-server - sql查询通知服务问题

转载 作者:行者123 更新时间:2023-12-04 05:08:12 25 4
gpt4 key购买 nike

我们的数据库出现超时问题。所以我打开了 SQL Server Profiler 并看到 SQLQueryNotificationService 每秒运行一次,持续时间很长。我检查了服务代理,并创建了一堆 SQLQueryNotificationService 队列。我不认为我们创建了这些队列中的任何一个,还有一堆存储过程,比如这些 SqlQueryNotificationStoredProcedure-15c5b84b-42b0-4cfb-9707-9b1697f44127。你能告诉我如何丢弃它们吗?如果我删除它们对数据库有什么影响吗?请让我知道。我很感激任何建议。

最佳答案

您是否有正在运行的 ASP.Net 网站或其他创建 Sql Server 缓存依赖项的应用程序?它是 Sql Server Service Broker 队列,它执行 WAITFOR ... 语句,等待大约一分钟(60000 毫秒),然后在下一秒再次执行。通常不会引起问题,也不应该阻塞或延迟您的“正常”查询或存储过程。

但是,我曾经看到它给我带来了问题 - 其中一个存储过程在从建立缓存依赖项的同一个 Web 应用程序执行时,超时(或者更确切地说是在 120 秒后返回,这是 Not Acceptable )。完全相同的存储过程,在具有相同参数的相同帐户下执行,但来自 Management Studio,运行良好,没有任何问题。它是 SQL Server 2005 SP4。

SQL Profiler 显示在我的存储过程的执行过程中(并且总是在同一个 INSERT INTO ... 语句之后),它的执行被中断,而不是它的语句是 WAIT FOR .... 来自 Sql Query Notification,在一分钟内完成,然后又一次 WAIT FOR... 开始又一次,在 59 秒内完成 - 只有在那之后 Profiler 才显示我的存储过程已完成。持续时间为 119000,几乎正好是两分钟。

如果该查询通知加入了​​我的存储过程中的事务。

有什么帮助:重新编译有问题的存储过程。我只是改变了它的脚本,做了一些小的语法更改的 ALTER 语句。之后就没有问题了。

关于sql-server - sql查询通知服务问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15234141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com