使用数据库的应用程序突然中断。我开始调查,发现一个简单的计数查询如何在SQL Server 2008上调试EXCEPTION_ACCESS_VIOLATION
SELECT count(uberdataid) FROM [Alexander].[dbo].[UberData]
创建SQL Server中的错误:
Msg 0, Level 11, State 0, Line 0 A severe error occurred on the current command. The results, if any, should be discard
的一点想法:
当我检查出错误的堆栈跟踪它说有一个EXCEPTION_ACCESS_VIOLATION。该异常的名称使我认为查询中可能存在权限问题。但是,我在许多不同的用户帐户上得到了完全相同的错误(这些错误都可以在没有问题的情况下查询数据库)。
关于SO的这个讨论(Exception Access Violation in SQL)让我觉得这个查询可能会造成持续的记录锁定,但我已经重启了服务器,所以看起来不太可能。
在其他留言板上还有一些其他未解决的讨论在线。
任何想法?
Stackoverflow不会让我发布整个跟踪(太长),但我很高兴发布相关部分,如果人们需要看到他们。我不知道哪些痕迹是最重要的。
没有发布这个答案,因为我对SQL Server一无所知。访问冲突表示SQL Server正在发生分段错误。那将是一件坏事。有可能你的桌子被损坏了。您可以尝试从问题出发之前进行旧备份,以查看问题是否未经历过。除此之外,如果这很容易重现,您可能会发现一个错误。 – Wug 2012-07-16 20:19:34
什么是SQL Server的构建(SELECT @@ VERSION)?大多数访问违规都是错误,大部分都已修复,但除了在AV发生的环境中,它们很难进行测试和证明。 – 2012-07-16 20:19:45
@AaronBertrand Microsoft SQL Server 2008(SP3) - 10.0.5500.0(X64)Sep 21 2011 22:45:45 Copyright(c)1988-2008 Windows NT 6.0上的Microsoft Corporation企业版(64位)(内部版本6002: Service Pack 2) –
bernie2436
2012-07-16 21:54:33