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가 이러한 요청을 충족하기 위해 몇 가지 리소스를 사용하는 것을 알 수 있다.
[참고자료]
- SSMS 폴링 간격 구성 : http://support.microsoft.com/kb/955647
2013-08-23 / 강성욱 / http://sqlmvp.kr
'SQL Server > SQL Server Tip' 카테고리의 다른 글
인증으로부터 분리된 사용자 방지 (2) | 2015.07.22 |
---|---|
비관리자 계정으로 쿼리 계획 보기 (0) | 2015.07.22 |
Deadlock 감지하여 알림하기 (0) | 2015.07.22 |
Suspect_pages 테이블 이해 및 관리 (0) | 2015.07.22 |
SSRS SocketException (0) | 2015.07.22 |