sql-server - SQL 表 - 插入和删除超时,选择确定

标签 sql-server sql-server-2008-r2

我在 SQL Server 2008 R2 中有一个数据库,其中除了一张表外,所有表似乎都正常运行。

在此表中,我无法删除一行或插入一行,因为它持续了 30 多分钟并超时。

我的插入看起来像这样:

INSERT INTO [dbo].[brokenTable] ([Change], [Date], [ProdId], [IntCol]) 
VALUES ('test', getdate(), null, '99999')

不过,我可以选择。选择前 200,000 需要 33 秒。表中只有约 260,000 行。有五列(一个 int 主键、一个日期、另一个 int 列和 2 个 varchar 列。)

这张表过去工作得很好而且很快,我根本没有做任何结构改变。

有没有人知道为什么会发生这种情况,以及如何解决?

最佳答案

给 future 可能有同样问题的人。

我认为查询进行得很慢,事实并非如此。它被另一个 session 锁定。如果您遵循 Martin Smith 的评论,他会帮我找到要修复的问题。

首先,我跑了

select * from sys.dm_os_waiting_tasks

在运行未完成的查询时,再次在未运行时查找 LCK_M_IX。我使用了该行中的 session ID,并将其与来自
select * from sys.dm_exec_sessions

并找到了阻止我查询的违规 session !

因为我知道这是一个可以安全结束的 session ,所以我以
Kill [sessionId]

关于sql-server - SQL 表 - 插入和删除超时,选择确定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10920419/

相关文章:

sql-server - 创建Assembly成功,sys. assembly_modules中没有找到任何内容

c# - 为什么它一直在说 "cannot find table 0"?

sql-server - 针对多个搜索词的全文搜索多列

sql-server - SQL Server - 如何自动 "Generate and Publish Scripts"

sql-server - SQL Server Express : how to allow remote connections

mysql - 添加查询中不存在的列

sql-server - SQL Server - 更新表中的行时会发生什么?

sql-server - 数据收集报告

sql - OLE DB 或 ODBC 错误 : Login failed for user 'NT AUTHORITY\NETWORK SERVICE

sql-server - 在 SQL Server 中的韩语单词(任何 Unicode 单词)中查找韩语字母(任何 Unicode 字符)的索引