我有一個應用程序使用SQL2008 SMO來獲取所有數據庫的SpaceAvailable屬性,但它經常會被其他進程阻塞很長時間。我已經注意到,我可以運行它在SSMS中生成的查詢,而在READ UNCOMMITTED隔離中沒有問題。我可以強制SQL SMO使用READ UNCOMMITTED隔離嗎?
那麼,有沒有辦法強制SQL SMO使用讀未提交隔離?
我有一個應用程序使用SQL2008 SMO來獲取所有數據庫的SpaceAvailable屬性,但它經常會被其他進程阻塞很長時間。我已經注意到,我可以運行它在SSMS中生成的查詢,而在READ UNCOMMITTED隔離中沒有問題。我可以強制SQL SMO使用READ UNCOMMITTED隔離嗎?
那麼,有沒有辦法強制SQL SMO使用讀未提交隔離?
對不起,對此回覆遲了。想象一下,如果有人在將來需要幫助,我會將其發佈。
您可以在創建服務器實例時指定隔離級別。
請確保您有以下參考資料:
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.ConnectionInfo;
,然後創建連接時
Server theSQLServer = new Server(@"cb-z420vmsasq1\sql12");
theSQLServer.ConnectionContext.SqlConnectionObject.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted);
您可能需要改變這種對不同交易設置隔離級別。
你搖滾!我仍然在尋找這個! – NTDLS
是 您可以使用 查詢頂部的SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED。 您也可以根據需要更改隔離級別。 搜索msdn.microsoft.com的隔離級別。
我正在使用.NET C#SMO對象來查詢各種性能指標,我沒有使用ADO。 – NTDLS
我一直希望Server或ServerConnection對象上有一個屬性可以讓你設置默認的事務隔離級別。我沒看到一個。 –