전체 글 1383

Ring_Buffer_Resource_Monitor

Ring_Buffer_Resource_Monitor Version : SQL Server 2005, 2008, 2008R2, 2012 리소스 모니터 및 메모리 브로커 기록은 RM의 핵심 요소이다. RM이 변경될 때 모니터링에 검출되어 기록 된다. 다음과 같은 이벤트 세션을 생성하여 링 버퍼 모니터링을 할 수 있다. CREATE EVENT SESSION RingBufferInfo ON SERVER ADD EVENT sqlos.resource_monitor_ring_buffer_recorded, ADD EVENT sqlos.memory_broker_ring_buffer_recorded ADD TARGET package0.asynchronous_file_target (SET filename = N'c:\XEv..

SQL Server 프로파일러 템플릿 만들기

SQL Server 프로파일러 템플릿 만들기 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server 프로파일러 템플릿 생성 방법과 추적 데이터를 테이블에 저장하는 방법을 알아 본다. [템플릿 생성 및 저장] 프로파일러를 실행하여 [파일] - [템플릿] – [새 템플릿]을 선택 한다. 새 템플릿의 이름 입력한다. 이벤트 선택 탭에서 템플릿에 사용할 이벤트를 선택 한다. 실습에서는 LOCK 관련 이벤트 추하여 템플릿을 생성 하였다. 템플릿 생성이 완료 된 다음 추적을 시작 할 때 [템플릿 사용]에서 생성한 템플릿을 선택 한다. 다음과 같이 추적이 되는 것을 확인 할 수 있다. [추적 내용을 테이블로 저장하기] [파일] – [다른 이름으로 저장] – [추적 테이블..

SQL Server 메모리 병목 현상 식별

SQL Server 메모리 병목 현상 식별 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server의 메모리 사용량을 확인하기 위해 DBCC MEMORYSTATUS 및 DMV를 사용할 수 있다. [DBCC MEMORYSTATUS] DBCC MEMORYSTATUS는 현재 메모리 상태의 스냅샷을 제공한다. dbcc memorystatus 각 항목에 대한 정보는 다음 링크를 참고 한다. DBCC MEMORYSTATUS 명령 사용 하여 SQL Server 2005에서 메모리 사용을 모니터링 하는 방법 : http://support.microsoft.com/?id=907877 INF: DBCC MEMORYSTATUS를 사용하여 SQL Server 메모리 사용 모니터 :..

SQL Server 시작 옵션 사용

SQL Server 시작 옵션 사용 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server를 설치할 때 Microsoft Windows 레지스트리에 기본 시작 옵션이 기록된다. 이 시작 옵션을 사용하여 master 데이터베이스 파일, master 데이터베이스 로그 파일 또는 오류 로그파일 등을 지정할 수 있다. SQL Server 서비스를 시작하는 방법은 다양하다. 구성관리자에서도 할 수 있으며 명령어 모드에서 다양한 명령어를 통해서도 가능하다. [명령 프롬프트에서 SQL Server 시작하기] Sqlservr.exe기본 인스턴스 시작Sqlservr.exe -s 명명된 인스턴스 시작Sqlservr.exe -m기본 인스턴스를 단일 사용자 모드로 시작Sqlser..

Ring buffer를 활용한 External Memory Pressure 확인

Ring buffer를 활용한 External Memory Pressure 확인 Version : SQL Server 2005, 2008, 2008R2, 2012 메모리 압력은 내부, 외부 두 가지 유형의 프로세스가 있으며 외부 메모리 압력은 프로세스와 전체 시스템의 페이징으로 발생 할 수 있다. 내부 메모리 압력은 OOM 상태 및 프로세서의 충돌로 발생 할 수 있다. Memory Pressure : http://sqlmvp.kr/140204286379 Memory Pressure에 대한 모니터링은 sys.dm_os_ring_buffers에서 가능 하다. 실습을 위해 Memory Pressure 발생 시킨다. 아래 스크립트는 sys.dm_os_ring_buffers에서 Ring_buffer_resourc..

Memory Pressure

Memory Pressure Version : SQL Server 2005, 2008, 2008R2, 2012 메모리 압력은 내부, 외부 두 가지 유형의 프로세스가 있다. 메모리 압력은 성능과 안정성을 극대화 하기 위해 발생한다. 외부 메모리 압력은 프로세스와 전체 시스템의 페이징으로 발생 할 수 있다. 내부 메모리 압력은 OOM 상태 및 프로세서의 충돌로 발생 할 수 있다. 외부 메모리 압력은 윈도우 운영 시스템에 의해 제어 되며 두 가지 유형이 있다. 물리적 동적 메모리 압력과 물리적 정적 메모리 압력이 있다. 시스템 페이지 파일이 부족하면 정적 메모리 압력이 발생 한다. 메모리 압력이 발생하면 시스템의 가상 메모리 부족을 나타내는 팝업을 윈도우 오른쪽 하단에서 확인 할 수 있다. 메모리 압력의 유형..

64비트 버전의 SQL Server 버퍼 풀 메모리 페이지 수 줄이는 방법 - Lock Page In Memory 설정

64비트 버전의 SQL Server 버퍼 풀 메모리 페이지 수 줄이는 방법 Lock Page In Memory 설정 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server 64비트 버전에서 다음과 같은 문제가 발생 할 수 있다. SQL Server 성능이 갑자기 저하 된다. SQL Server 실행 하는 컴퓨터가 잠시 동안 응답하지 않는다. SQL Server 연결 응용 프로그램에 대한 시간이 초과되었다. 시스템에서 응용 프로그램을 사용할 때 문제가 발생 한다. SQL Server 2005 SP2 이후 버전을 설치한 경우 이 문제가 발생하면 SQL Server 오류 로그에 기록 된다. 오류 로그는 다음과 같은 내용으로 기록 된다. date time spid1..

누락된 공유 잠금 (Missing Shared Locks)

누락된 공유 잠금 (Missing Shared Locks) Version : SQL Server 2005, 2008, 2008R2, 2012 특정 행에 대해 베타적 잠금(exclusive lock)을 보유한 경우 다른 트랜잭션에서 read committed isolation 레벨에서 읽을 수 있을까? 대부분의 사람들은 베타적 잠금을 보유한 경우 읽을 수 없다고 답할 것이다. 일부 사람들은 READ_COMMITTED_SNAPSHOT 데이터베이스 옵션의 적용 여부에 달려 있다고 할 것이다. READ_COMMITTED_SNAPSHOT 경우가 아니라고 가정하면 read committed 격리 수준으로 읽을 수 있다. 실습을 위해 테이블과 데이터를 생성한다. use tempdb go CREATE TABLE dbo..

Ad Hoc Distributed Queries 옵션

Ad Hoc Distributed Queries 옵션 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서 임시 분산 쿼리를 허용하는 옵션에 대해서 알아보자. 임시 분산 쿼리에는 OPENROWSET 및 OPENDATASOURCE 함수를 사용하여 OLE DB를 사용하는 원격 데이터 원본에 연결한다. OPENROWSET과 OPENDATASOURCE는 자주 사용되지 않는 OLE DB 데이터 원본을 참조하기 위해서만 사용해야 한다. 자주 사용되는 데이터 원본에 대해서는 연결된 서버를 설정하여 사용해야 한다. 기본적으로 SQL Server에서는 OPENROWSET 및 OPENDATASOURCE를 사용하는 임시 분산 쿼리를 허용하지 않는다. 이 옵션을 1로 설정하..

높은 MAXDOP은 쿼리를 느리게 만들 수 있는가?

높은 MAXDOP은 쿼리를 느리게 만들 수 있는가? Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server의 최대 병렬 처리 수준(MAXDOP) 구성 옵션은 병렬 계획에서 쿼리 실행에 사용되는 프로세서의 수를 제어한다. MAXDOP 설정 : http://sqlmvp.kr/140176043445 높은 MAXDOP은 상황에 따라 쿼리를 느리게 만들 수 있다. 낮은 DOP가 반드시 긴 런타임을 의미하지는 않는다. 테스트를 위해 간단한 OLTP 쿼리를 실행하였으며 서로 다른 MAXDOP를 설정하였다. CPU 시간 및 duration은 "SET STATICSTICS TIME ON"을 사용하여 측정 한 결과이다. 실행을 위한 데이터는 모두 메모리에 있었다. 두 경우 소..