TempDB 의 추적플래그로 동시성을 강화하자

1
0

아래에 TempDB 를 확장하는 주제로 글을 적었는데,

이 내용과 함께 적용을 하면 TempDB 의 진정한 확장이 됩니다.

내용을 같이 적을 수 도 있었지만, 추적플래그는 또 다른 기능이므로 별도로 분리해서 적어 봅니다.

===================================

SQL 서버에만 있는 기능으로 추적플래그 라는 기능이 있습니다.

추적 플래그는 특정 서버의 특성을 임시로 설정하거나 특정 동작을 중지시키는 데 사용합니다.

이 추적 플래그의 종류는 매우 많이 있으며, 유용한 플래그도 있고 문서화 되지 않은 플래그도 있습니다.

SQL Server에서 사용하는 여러 가지 할당 메커니즘이 있는데, 내용이 많이 어려우므로 간략하게만 적자면,

이전 주제에 동일 크기로 할당을 한 이유는 비례 채우기(proportional-fill) 알고리즘을 사용하기 때문입니다.

즉, 하나의 파일에 여유공간이 다른 파일의 공간보다 큰 경우,

해당 파일에 할당작업이 할당되어 GAM, SGAM 등 할당관련 페이지에 대한 경합현상이 경감되지 않기 때문에

모든 파일의 크기를 동일하게 함으로서 각 파일별로 할당 작업이 진행될 수 있도록 하는 것입니다

그 중 TempDB에 사용하는 추적 플래그인 1118를 활성화면 SGAM 에서 경합을 방지 할 수 있습니다.

설정 방법은 매우 간단합니다.

 플래그 활성화  DBCC TRACEON(1118,-1)

 플래그 비활성화 DBCC TRACEOFF(1118,-1)

 플래그 상태보기 DBCC TRACESTATUS 

SSMS 를 이용하여 보겠습니다.

플래그 활성화

플래그 비활성화

플래그 활성화 상태 보기

입니다.

이러한 플래그 명령어로 지정을 할 경우 SQL 서버를 재시작하게 되면, 현재의 플래그 설정은 모두 사라지게됩니다.

그래서 이 플래그를 SQL 서버에서 시작할 때 동시에 시작 되도록 시작 매개변수 설정을 할 수 있습니다.

SQL2012 이상 버전과 SQL2012이하 버전의 설정법이 틀린데

SQL2012 이하 버전에서는 오타에 매우 주의해야 합니다.

SQL 서버의 구성관리자로 들어갑니다.

제 PC에는 2008R2 와 2014 2개가 설치가 되어 있군요

먼저 2012의 상위버전인 2014 를 보겠습니다.

2012와 동일한 UI 입니다.

다음 화면과 같이 -T1118 이라고 입력하고 추가를 누르고,

SQL 서버를 재시작 해주면 됩니다.

2008R2 , 2008 , 2005 에서는 설정이 다음과 같습니다.

;-T1118 이라고 입력하고 시작하면 됩니다.

두둥…

여기서 오타가 나면 ,

일반적인 상황은 상관이 없습니다.

문제는 MSCS 로 클러스터링 되어 있는 상황에서는 ..매우 심각해집니다.

이런 경우 MS 와 프리미어 계약을 맺어진 경우라면 프리미어 서비스를 받으시면 됩니다.

아니라면 클러스터 엔지니어를 불러서 함께 처리 해야 합니다.

해결 방법은 링크로 보내드립니다.

http://blogs.msdn.com/b/ewanf/archive/2008/12/13/performance-story-about-traceflag-t1118-and-the-cluster-registry-checkpoint-service.aspx



총 0개 내용
의견 쓰기

쉐어드IT의 가입은 쉽고 간단합니다. 지금 하시고 IT관리자들과 의견을 함께 나누세요