Исходное обсуждение: https://www.sql.ru/forum/1316231/ssis-neponyatnaya-oshibka-svyazi-s-ms-sql-cherez-ole-db-konnektor
По непонятной причине resource governor иногда ломается и обрывает подключения:
Настройки RG ниже:
Функция:
Пулы:
Итоговый:
Учётка, для которой подключение иногда обрывается, попадает в группу PoolAdminUsersGroup.
Когда отключаю GOVERNOR - всё прекрасно работает.
В чём может быть проблема?
По непонятной причине resource governor иногда ломается и обрывает подключения:
Происходит это с интервалом пару раз в сутки, возможно в периоды высокой нагрузки.
2019-08-28 15:19:00.38 spid151 Process ID 153 was killed by hostname SERVERNAME, host process ID 6252.
2019-08-28 15:19:00.38 spid153 Ошибка: 10982, серьезность: 16, состояние: 1.
2019-08-28 15:19:00.38 spid153 Failed to run resource governor classifier user-defined function 'dbo.RGGroup'. Last error 3602, state 135. See previous errors in SQL Server error log from session ID 153 for details. Classifier elapsed time: 0 ms.
Настройки RG ниже:
Функция:
CREATE FUNCTION [dbo].[RGGroup]() RETURNS SYSNAME WITH SCHEMABINDING AS BEGIN DECLARE @WorkloadGroup AS SYSNAME SELECT TOP 1 @WorkloadGroup = CASE WHEN IS_SRVROLEMEMBER ('rgAdminUsers') = 1 THEN 'PoolAdminUsersGroup' WHEN IS_SRVROLEMEMBER ('rgDWHUsers') = 1 THEN 'PoolDWHUsersGroup' WHEN IS_SRVROLEMEMBER ('rgDNSUsers') = 1 THEN 'PoolDNSUsersGroup' ELSE 'default' END; RETURN @WorkloadGroup END
Пулы:
CREATE RESOURCE POOL PoolDNSUsers WITH ( MIN_CPU_PERCENT = 0, MAX_CPU_PERCENT = 20, CAP_CPU_PERCENT = 20, MIN_MEMORY_PERCENT = 0, MAX_MEMORY_PERCENT = 20 ); CREATE RESOURCE POOL PoolDWHUsers WITH ( MIN_CPU_PERCENT = 0, MAX_CPU_PERCENT = 90, MIN_MEMORY_PERCENT = 0, MAX_MEMORY_PERCENT = 90 ); CREATE RESOURCE POOL PoolAdminUsers WITH ( MIN_CPU_PERCENT = 0, MAX_CPU_PERCENT = 100, MIN_MEMORY_PERCENT = 0, MAX_MEMORY_PERCENT = 100 ); USE [master] GO /****** ******/ CREATE WORKLOAD GROUP [PoolDNSUsersGroup] WITH(group_max_requests=0, importance=Medium, request_max_cpu_time_sec=0, request_max_memory_grant_percent=25, request_memory_grant_timeout_sec=0, max_dop=0) USING [PoolDNSUsers], EXTERNAL [default] GO /****** ******/ CREATE WORKLOAD GROUP [PoolDWHUsersGroup] WITH(group_max_requests=0, importance=Medium, request_max_cpu_time_sec=0, request_max_memory_grant_percent=40, request_memory_grant_timeout_sec=0, max_dop=0) USING [PoolDWHUsers], EXTERNAL [default] GO /****** ******/ CREATE WORKLOAD GROUP [PoolAdminUsersGroup] WITH(group_max_requests=0, importance=Medium, request_max_cpu_time_sec=0, request_max_memory_grant_percent=100, request_memory_grant_timeout_sec=0, max_dop=0) USING [PoolAdminUsers], EXTERNAL [default] GO
Итоговый:
USE [master] GO ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = [dbo].[RGGroup]); GO ALTER RESOURCE GOVERNOR WITH (MAX_OUTSTANDING_IO_PER_VOLUME = DEFAULT); GO ALTER RESOURCE GOVERNOR RECONFIGURE; GO
Учётка, для которой подключение иногда обрывается, попадает в группу PoolAdminUsersGroup.
Когда отключаю GOVERNOR - всё прекрасно работает.
В чём может быть проблема?