感謝您花時間閱讀我的問題。我們已經構建了一個使用T-SQL的系統來處理(大量)數據。當我們開始處理這些數據時,此操作通常需要大約15分鐘才能完成。在此期間,出於某種原因,似乎數據庫中的所有對象都存在鎖定。在某種程度上,我明白我無法查詢正在寫入的表。但是,當我刷新表的列表(例如,在對象資源管理器的Tables節點上使用F5)時,SQL Server也會給我一個超時鎖定消息。基於下面的模板SQL Server Large Transaction鎖定所有表格
我的代碼工作:
CREATE PROCEDURE Sample
as
SET NOCOUNT, XACT_ABORT ON
BEGIN TRY
BEGIN TRANSACTION
...
COMMIT TRANSACTION
END TRY
BEGIN CATCH
BEGIN
PRINT 'STORED PROCEDURE - Returned errors while processing'
ROLLBACK TRANSACTION
END
END CATCH
現在,當我開始這個我可以執行SELECT WITH(NOLOCK)查詢任何表。但我無法查看視圖上的定義,存儲過程或基本上在數據庫中執行任何其他類型的操作。
我已經設置了READ UNCOMMITTED隔離級別設置,但這似乎沒有什麼區別。
欣賞此事的任何幫助。
親切的問候,
隔離級別會影響報表如何選擇工作,這些都不會影響DDL,DML..Locking,填塊是大主題,所以請有關如何解決鎖定的阻塞搜索並從那裏開始 – TheGameiswar