SQL Server/SQL Server Tip

SSMS 폴링 간격 구성

SungWookKang 2015. 7. 22. 10:37
반응형

SSMS 폴링 간격 구성

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

SQL Server Management Studio(SSMS) 개체탐색기에서 SQL Server의 상태 및 SQL Agent의 서비스 상태를 표시한다.

이 서비스 표시에 사용되는 메커니즘에 대해서 알아 보자. 이번 포스트는 CSS SQL Server Engineer 팀 블로그에 포스트된 내용으로 필자가 읽고 이해한 내용을 정리하였으며 번역의 오류 및 기술적 오류의 가능성을 미리 알려둔다. 자세한 내용은 원문을 참고 하길 바란다.

 

개체탐색기의 서비스 상태 정보를 표시하는 것은 WMI 계층을 통해 제공 된다. SSMS를 실행하면 개체 탐색기 창에서 초기화 할 때 이 정보를 얻기 위해 개체 탐색기 WMI 네임스페이스에 연결하여 다양한 WMI 쿼리를 수행 한다.

 

개체 탐색기는 다음과 같은 호출을 사용하여 WMI 공급자 CIMWin32의 두 서비스에 대한 정보를 추출 한다.

  • Provider::GetObject - Win32_Service.Name=""MSSQLSERVER""
  • Provider::GetObject - Win32_Service.Name=""SQLSERVERAGENT""

 

상태 변경 정보를 얻을 수 있는 알림 설정은 ManagementEventWatcher의 System.Management클래스를 사용한 쿼리형식이다.

  • IWbemServices::ExecNotificationQuery - select * from __InstanceModificationEvent within 10 where TargetInstance isa 'Win32_Service'

 

기본적으로 10초마다 서비스 상태 정보를 받을 수 있다. cimwin32.dll 공급자 Wmiprvse.exe 프로세스에서 내부적으로 10초마다 실행 된다.

  • IWbemServices::ExecQuery - select * from Win32_Service

 

폴링 간격은 기존 10초를 사용하지만 변경 할 수 있다. 변경 방법은 레지스트의 값을 변경해야 한다.

  • 64bit : HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\100\Tools\Shell
  • 32bit : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Tools\Shell

 

 

 

레지스트리 편집기에서 새로 만들기를 클릭하여 [DWORD]값을 선택, 이름을 [PollingInterval]을 입력 한다. 값에는 0~2147483647 사이의 값을 입력한다. 0의 경우에는 폴링을 사용하지 않는다.

 

0으로 설정하여 폴링을 사용하지 않을 경우에는 더 이상 개체 탐색기에서 서비스 상태 정보를 확인 할 수 없다.

 

 

시스템에서 모든 작업을 하려면 SSMS 시작 시 WMI에 공급자 cmiv2에 대한 적절한 윈도우 계정 권한이 필요하다. 기본적으로 '인증된 사용자'는 네임스페이스에 원격 액세스 할 수 없는 것을 확인 할 수 있다. 관리자 그룹만 이 권한을 가지고 있다.

 

 

필요한 권한이 없는 경우 SSMS 개체 탐색기에서 상태 정보를 확인 할 수 없다. DBA가 SSMS를 사용하여 동일한 서버에 연결 하는 경우 이러한 클라이언트의 모든 사람은 기본 적으로 10초의 폴링 서비스를 수행하며 Wmiprvse.exe 및 Lsass.exe가 이러한 요청을 충족하기 위해 몇 가지 리소스를 사용하는 것을 알 수 있다.

 

[참고자료]

 

 

2013-08-23 / 강성욱 / http://sqlmvp.kr

 

 

 

반응형