我有一個約15表的數據庫。其中14個工作正常。 。突然做一個「select * from table」(其中通常需要< 2秒才能返回,現在似乎不會再返回(我已經等待了8分鐘),下一步調試的最佳步驟是什麼發生了什麼事?我注意到這是因爲我的asp.net網站開始超時,但我直接從sql server mgmt studio得到相同的問題。sql server 2005簡單的查詢不再返回
回答
可怕的數據庫可能是正確的建議它是鎖,這是一個方便的腳本,我一直在檢查鎖特定的數據庫,輸出鎖定的對象名,鎖類型,登錄持有它,什麼SQL語句正在運行到持有鎖:
SELECT L.request_session_id AS SPID,
DB_NAME(L.resource_database_id) AS DatabaseName,
O.Name AS LockedObjectName,
P.object_id AS LockedObjectId,
L.resource_type AS LockedResource,
L.request_mode AS LockType,
ST.text AS SqlStatementText,
ES.login_name AS LoginName,
ES.host_name AS HostName,
TST.is_user_transaction as IsUserTransaction,
AT.name as TransactionName,
CN.auth_scheme as AuthenticationMethod
FROM sys.dm_tran_locks L
LEFT JOIN sys.partitions P ON P.hobt_id = L.resource_associated_entity_id
LEFT JOIN sys.objects O ON O.object_id = P.object_id
LEFT JOIN sys.dm_exec_sessions ES ON ES.session_id = L.request_session_id
LEFT JOIN sys.dm_tran_session_transactions TST ON ES.session_id = TST.session_id
LEFT JOIN sys.dm_tran_active_transactions AT ON TST.transaction_id = AT.transaction_id
LEFT JOIN sys.dm_exec_connections CN ON CN.session_id = ES.session_id
CROSS APPLY sys.dm_exec_sql_text(CN.most_recent_sql_handle) AS ST
WHERE resource_database_id = db_id()
ORDER BY L.request_session_id
我會設置一個sqlTrace使用SqlServerProfiler,在數據庫上,然後你可以看到到底發生了什麼,查詢和它卡住的地方
如果你無法從表中檢索數據,那可能是因爲它被其他進程鎖定了,假設你在SQL Server 2005或2008針對動態管理視圖sys.dm_exec_requests運行select 。您可以查看是否存在您感興趣的表上有鎖的突出請求。
你能澄清你的意思嗎? 。當我自己運行sys.dm_exec_requests時,我得到:過程'dm_exec_requests'的請求失敗,因爲'dm_exec_requests'是一個視圖對象。 – leora 2009-11-30 12:14:47
我從sys.dm_exec_requests中運行select *,並且看到了一些記錄,但我不確定這裏要做什麼。 。 – leora 2009-11-30 12:16:50
上面的鎖定腳本很好。基本上,您需要查看blocking_session_id列以查看您的查詢是否被阻止。之後有更多的細節,但它會讓你開始。 – ScaryDBA 2010-03-08 14:41:25
可能是要麼鎖,塊,你的統計信息已過時的
運行以下
exec sp_who2
您是否看到BlkBy列中的任何SPID?
- 1. 絕對簡單的SQL Server查詢不返回任何
- 2. SQL Server 2005查詢
- 3. 簡單的SQL查詢返回零行
- 4. 簡單的像在SQL Server查詢返回沒有結果
- 5. SQL查詢在SQL Server 2005
- 6. SQL Server 2005的XML查詢
- 7. SQL Server查詢返回null
- 8. SQL Server 2005中的不同查詢
- 9. SQL Server 2005子查詢
- 10. 在SQL Server DISTINCT 2005查詢
- 11. SQL Server 2005性能查詢
- 12. 樞軸查詢 - SQL Server 2005
- 13. SQL Server 2005查詢幫助
- 14. 查詢SQL Server 2005中
- 15. SQL Server 2005和.NET查詢
- 16. SQL Server 2005求和查詢
- 17. 查詢SQL Server 2005中
- 18. SQL Server 2005 - 優先查詢
- 19. SQL Server 2005,SELECT DISTINCT查詢
- 20. SQL Server 2005 XML查詢
- 21. SQL Server查詢不返回任何行
- 22. 簡單的查詢複製在SQL Server
- 23. 簡單的SQL返回計數而不使用子查詢
- 24. SQL Server 2005鏈接服務器查詢不會返回預期的錯誤
- 25. 的SQL Server ...子查詢返回多個
- 26. SQL Server查詢返回重複的行
- 27. 返回Xml和Html的SQL Server查詢
- 28. 從PHP的SQL SERVER查詢返回Param
- 29. SQL查詢,通配符,MS SQL SERVER 2005
- 30. 在Sql Server中簡單更新查詢
hmm。我似乎沒有安裝。 – leora 2009-11-30 12:34:03