SQL Server 2008 R2可以用來依特定程式指派資源嗎?

SQL Server 2008 R2可以用來依特定程式指派資源嗎?

最近,我遇到了一個場景,我被邀請協助管理一個託管系統,我們在該系統中為客戶託管我們自己的產品。每個客戶都會獲得特定 SQL 實例的唯一用戶,並且我們正在運行多個實例,但一個實例可能有 50 到 100 個用戶。我們還允許合作的第三方供應商運行軟體,這些軟體也可以存取同一客戶的資料庫,就像我們自己的軟體允許同一用戶一樣。然而,我遇到的情況是,第三方程式通常執行得不好,並且會消耗大量的CPU,讓客戶陷入困境。我知道,使用資源管理器,您可以限制特定使用者有權存取的資源量。但是,我想知道是否有辦法限制特定程式名稱可以存取的資源,或將其設定為較低的優先順序?這些第三方應用程式的運行時間有限,因此我無法進一步延長應用程式的運行時間。到目前為止,我還沒有找到任何方法來限制特定程式存取 SQL 時的資源或優先級,我想知道是否有任何此類資訊的資源在我的搜尋中沒有出現?

答案1

我已經閱讀了一些內容,從它的外觀來看,使用資源調控器,您可以對每個會話/連接進行分類並將其分配給特定的資源池。資源池可以根據您的需求限制資源。然而,為了實現此目的,您需要定義一個分類器函數,該函數將查看會話的屬性並確定連接屬於哪個資源池。

您可以使用APP_NAME()SQL 中的函數(在分類器函數內)來取得正在建立連線的應用程式名稱。然後再分配到分配有出租人資源的資源池。

參考連結:

資源調控器 -https://msdn.microsoft.com/en-us/library/bb933866(v=sql.105).aspx

建立並測試分類器使用者定義函數 -https://msdn.microsoft.com/en-us/library/cc645892(v=sql.105).aspx

相關內容