我LCK_M_S
在使用 RCSI时看到等待共享锁 ( )。我的理解是这不应该发生,因为SELECTs
在使用 RCSI 时不需要共享锁。
我怎样才能看到共享锁?是因为外键吗?
在特定表上执行 select count(*) 时,我似乎遇到了很多死锁。我已经更改了所有必需的参数并将它们设置为仅行锁定。
我还更改了数据库以使用 READ_COMMITTED_SNAPSHOT 隔离,
但是,似乎使用 select count(*) where column = ? 在桌子上触发死锁或桌子上的锁..
我是否正确地认为 select count(*) 应该只访问中间行?但是,似乎并非如此,我仍然遇到死锁。适当的索引可能会有所帮助,
问题是:即使 read_committed_snapshot 设置为 on,SQL Server 2008 R2 是否在 select count(*) 期间在表上放置共享锁?
谢谢
我试图让我的表使用行锁。我已经禁用了锁升级。隔离级别为READ_COMMITTED_SNAPSHOT
alter table <TABLE_NAME> SET (LOCK_ESCALATION=DISABLE)
go
alter index <INDEX_NAME> ON <TABLE_NAME> SET (ALLOW_PAGE_LOCKS=OFF)
go
Run Code Online (Sandbox Code Playgroud)
设置后还是不行。
我是否需要重建我的表以使其不使用页面锁定?
sql-server deadlock sql-server-2008-r2 locking isolation-level
我在我的 ldf 文件中收到错误 833,而且我收到了很多错误。
请参阅以下内容。发生这种情况时,我的应用程序已经挂起。
我知道错误 833 已被多次报告,但是如果它始终指向我无法访问的 LDF 文件,这意味着什么?是不是因为LDF文件已经很大了?
我在 Windows 2008 环境中使用 SQL Server 2008 R2。数据库处于无响应状态,重启是唯一删除挂起 I/O 的方法。一旦开始,它还没有结束。
对此有什么可能的解释?请查看 sql 错误日志中的日志文件。
可能也是因为这个错误吗?
http://support.microsoft.com/kb/2708012
顺便说一句,sql server 一直没有响应,这发生在夜间。只有重新启动才能使服务器再次响应。
01/21/2013 12:22:09,spid3s,Unknown,SQL Server has encountered 19 occurrence(s) of I/O requests taking longer than 15 seconds to complete on file [E:\MSSQL.1\MSSQL\DATA\test_database_log.LDF] in database [test_database] (6). The OS file handle is 0x00000000000008B8. The offset of the latest long I/O is: 0x00001028a8ac00
01/21/2013 12:15:29,spid3s,Unknown,SQL Server has encountered 17 occurrence(s) of I/O requests taking longer than …
Run Code Online (Sandbox Code Playgroud)