使用数据库的应用程序突然中断。我开始调查并注意到一个简单的计数查询
SELECT count(uberdataid) FROM [Alexander].[dbo].[UberData]
在SQL Server中创建错误:
消息0,级别11,状态0,行0发生严重错误 当前命令。结果(如果有的话)应该丢弃
一些想法:
当我查看错误的堆栈跟踪时,它表示存在EXCEPTION_ACCESS_VIOLATION。该异常的名称使我认为查询中可能存在权限问题。但是我在许多不同的用户帐户上得到了完全相同的错误(所有用户帐户都可以在没有问题的情况下查询数据库)。
关于SO(Exception Access Violation in SQL)的讨论让我觉得查询可能会遇到一个挥之不去的记录锁定,但我重启服务器似乎不太可能。
在线其他留言板上还有一些其他未解决的讨论。
有什么想法吗?
Stackoverflow不会让我发布整个跟踪(太长时间)但我很乐意发布相关部分,如果人们需要看到它们。我不知道跟踪中哪些部分最重要。
答案 0 :(得分:3)
这看起来像是一个SQL Server错误。 EXCEPTION_ACCESS_VIOLATION
表示SQL Server内部的代码试图访问“无效”内存(例如,解除引用NULL
指针)。它与SQL Server安全设置无关。
即使这可能是一个错误,我建议您运行
DBCC CHECKDB WITH EXTENDED_LOGICAL_CHECKS, DATA_PURITY, NO_INFOMSGS
在有问题的数据库上。可能存在触发SQL Server错误的损坏。