SQL Server/SQL Server Tip 662

Max worker thread 초과 이슈

Max worker thread 초과 이슈 Version : SQL Server 2012 SQL Server는 사용자의 요청을 처리 하기 위해서 작업을 할 수 있도록 리소스를 할당 받는데 시스템의 환경에 따라 최대 작업자 스레드를 자동으로 할당하기도 하며 설정 값 변경을 통하여 강제로 할당 할 수도 있다. 스레드 및 태스크 아키텍처 : http://sqlmvp.kr/140191074249 MAX Work thread : http://sqlmvp.kr/140150957238 사용자 스레드가 최대 작업자 스레드를 초과할 수 있을까? 다음 사례를 통하여 어떤 이슈가 있었는지 알아 보자. 이번 포스트는 SQL Server Premier Field Engineer Blog에 게시된 글로 필자가 읽고 이해한 내용을..

SQL Server Failover 클러스터 설치 트러블슈팅

SQL Server Failover 클러스터 설치 트러블슈팅 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server를 운영할 때 성능 및 안정성을 확보하기 위하여 고가용성을 구성하는 경우가 많다. 고가용성에는 클러스터링, 복제, 미러링, 로그전달, AG(2012) 등이 있다. (자세한 내용은 SQL Server 운영과 튜닝(영진출판사)을 참고하길 바란다.) 이번 사례는 CSS SQL Server Engineer 팀 블로그에 게시된 내용으로 현업 엔지니어들이 겪는 SQL Server Failover 클러스터 구성 시 자주 발생하는 이슈를 다루어 본다. 필자가 읽고 이해한 내용을 바탕으로 정리 하였으며 번역의 오류나 기술적 오류가 있음을 미리 알려둔다. 자세한 ..

MAXDOP 극대화 하기

MAXDOP 극대화 하기 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서는 CPU가 2개 이상의 코어를 가지고 있을 때 상황에 따라 자동적으로 병렬처리를 한다. 그렇다면 CPU의 코어가 많을수록 더 좋은 성능을 내는가? 최대 병렬처리 성능을 끌어내기 위해서는 어떻게 해야 할까? 이번 아티클은 CSS SQL Server Engineers 블로그에 게시된 내용으로 CPU 80코어의 시스템에서 MAXDOP의 성능을 극대화 하는 방법을 소개 하였다. 이번에 게시된 글은 특정 시스템 환경의 사례이므로 모든 시스템에 적용할 수 있는 일반적인 구성과 다를 수 있다. 필자가 읽고 이해한 내용을 바탕으로 정리 하였으며 번역의 오류나 기술적 오류 가능성을 미리 알려..

SQL Server 가상화 팁

SQL Server 가상화 팁 Version : SQL Server 2005, 2008, 2008R2, 2012 최근 들어 가상화 기술지원이 강화 되면서 기존의 스케일 아웃(scale out) 설계에서 스케일 업(scale up) 설계로 많이 바뀌고 있는 추세이다. 스케일 아웃과 스케일 업 중 어떤 디자인이 좋을까? 누구나 할 수 있는 대답이지만 정답은 없다. 다만 한정적인 자원에서 효율적인 성능을 발휘 할 수 있도록 설계하는 것이 정답이라 생각한다. 일반적으로 패션에서도 유행은 10년 주기로 반복된다는 말이 있듯이 IT의 흐름을 보면 시스템 디자인에 대한 트렌드 또한 라이프사이클이 있는 듯 하다. 한 때는 각 서버를 기능별로 분리하여 확장하는 형태가 유행 하였다고 하면 최근에는 하드웨어의 발달과 가상화..

.Net Framework 4.0과 SQL Server 2008 설치 오류

.Net Framework 4.0과 SQL Server 2008 설치 오류 SecurityException / 'The process was terminated' errors installing SQL 2008 when .Net Framework 4.0 is installed Version : SQL Server 2008, .Net Framework 4.0 SQL Server를 운영, 관리 하는데 있어서 가장 많이 접하는 이슈가 무엇일까? 필자는 개인적으로 SQL Server 프로그램 설치라 생각한다. 대부분의 윈도우 응용프로그램을 사용하는 사용자들은 프로그램 설치를 가장 쉽게 생각할 수도 있지만 다양한 서버의 환경(사용자마다 환경이 모두 동일할 수는 없다.)에서 설치되는 만큼 다양한 케이스의 오류가 발..

SQL Server 인덱스 튜닝 접근

SQL Server 인덱스 튜닝 접근 Version : SQL Server 2005, 2008, 2008R2, 2012 잘 만들어진 인덱스는 SQL Server의 읽기 성능을 향상 시킬 수 있다. 하지만 인덱스를 유지하기 위해 정기적인 인덱스 유지보수(rebuilds, reorganization and updating statistics) 및 추가 스토리지 공간 등 비용이 발생 한다. 그렇다면 인덱스를 사용, 관리, 튜닝 하는데 있어서 어떤 방식으로 접근해야 할까? 이번 포스트는 SQL Server Premier Field Engineer Blog에 게시된 내용으로 필자가 이해한 내용을 바탕으로 정리 하였으며 번역의 오류나 기술적 오류가 있을 수 있으므로 원문을 참고하길 바란다. 인덱스에 대한 비용 부분..

Sys.dm_os_performance_counter 해석하기

Sys.dm_os_performance_counter 해석하기 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server를 운영하는데 있어서 SQL Server 성능 카운터는 시스템의 상태를 측정 및 모니터링하는데 매우 중요한 도구 이다. Sys.dm_os_performance_counter DMV는 SQL Server의 다양한 카운터 값들을 제공한다. 하지만 이 값은 원시적인 값이기 때문에 해석하는 능력이 필요하다. 이번 포스트는 CSS SQL Server Engineer 팀 블로그에 게시된 내용으로 필자가 읽고 이해한 내용을 바탕으로 정리하였으며 번역의 오류나 기술적 오류가 있음을 미리 알려두며 자세한 내용은 원문을 참고하길 바란다. 다음 스크립트를 실행 하..

프로파일러를 이용한 중첩된 프로시저 디버깅

프로파일러를 이용한 중첩된 프로시저 디버깅 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서 데이터베이스의 성능 튜닝을 위한 정보를 수집하거나 요청되는 쿼리, 발생하는 각종 정보를 수집하기 위해 프로파일러라는 도구를 사용한다. 프로파일러는 SQL Server 솔루션에서 제공하는 기본 도구로 무료로 사용할 수 있지만 기능은 매우 강력하다. 프로파일러 사용법(기본) : http://sqlmvp.kr/140149940592 위의 아티클에서 프로파일러의 기본 사용법을 숙지 하였다면 이번 시간에는 프로파일러에서 중첩된 프로시저에 대한 디버깅을 하는 방법을 알아보도록 한다. 우선 실습을 위해 다음 스크립트를 실행하여 중첩된 프로시저를 생성한다. Usp_a1을 ..

SAN 스토리지 성능 모니터 - SAN 스토리지를 사용하는 경우 성능 카운터를 어떻게 모니터링 할까?

SAN 스토리지 성능 모니터 SAN 스토리지를 사용하는 경우 성능 카운터를 어떻게 모니터링 할까? Version : SQL Server 2005, 2008, 2008R2, 2012 SAN 스토리지를 사용하는 경우 성능 모니터(performance counter)에 나타나는 숫자를 믿을 수 있을까? 이번 포스트는 sqlmag.com에 게시된 내용으로 필자가 읽고 이해한 내용을 바탕으로 정리하였으며 번역의 오류나 기술적 오류가 있음을 미리 알려둔다. SAN 스토리지를 사용하는 경우 카운터의 일부는 신뢰할 수 없다. 수 많은 카운터 중에 어떤 값이 신뢰할 수 있는 값이며 어떤 값이 신뢰 할 수 없는 값인지 구분 할 줄 아는 것은 매우 중요하다. 다음 목록을 통하여 SAN 스토리지 사용시 신뢰할 수 있는 값과 ..

저장된 Plan Cache 확인 및 활용

저장된 Plan Cache 확인 및 활용 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서 요청된 쿼리는 컴파일 과정을 거쳐 실행 계획을 생성한다. 이때 요청된 쿼리에 따라 수 많은 계획이 생성될 수도 있고 기존의 계획이 재사용 될 수도 있다. 이번 포스트에서는 저장된 캐시 계획에 대한 활용방안을 살펴 보자. 비슷한 방식으로 실행 계획을 저장하는 SQL Server의 내부 메모리 영역(플랜캐시 또는 프로시저 캐시라고도 한다)이 있다. SQL Server는 기존 계획이 내부에 존재하는지 먼저 확인한다. 그리고 기존의 계획을 발견하게 되면 요청된 쿼리에 대해 새로운 계획에 대한 컴파일 시간을 할애 하지 않아도 된다. 이렇게 기존의 계획을 재사용하면 일반..