SQL Server 124

RESOURCE_GOVERNOR_IDLE과 쿼리 성능

RESOURCE_GOVERNOR_IDLE과 쿼리 성능 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 이 글은 CSS SQL Server Engineers에 기재된 내용으로 원문을 읽고 해석한 것으로 필자의 이해력을 기반으로 기술하였습니다. 기술적 오류 또는 번역의 오류가 포함될 수 있으니 반드시 원문을 참고 바랍니다. 쿼리의 실행이 느릴 때 SQL Nexus(http://sqlnexus.codeplex.com/) 에서 다음과 같은 대기 유형을 캡처 했다. 대기 유형에서 RESOURCE_GOVERNOR_IDLE가 매우 높게 나타는것을 확인 하였다. 이 대기 유형은 CPU CAP 실행에 관련한 것이었다(CAP_CPU_PERCENT). CAP_CPU_PERCENT..

재해복구를 위한 SQL Server 역할 가져오기

재해복구를 위한 SQL Server 역할 가져오기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 SQL Server를 다른 서버로 이전하거나 DR에 의해서 다른 사이트로 이동 될 때 반드시 챙겨야 하는 부분이 로그인 계정과 서버 역할이다. 서버 역할을 복구할 수 있는 스크립트를 만들어서 언제든지 서버 역할을 복원 할 수 있는 방법에 대해서 알아 본다. 서버 역할에 대한 정보를 확인 하기 위해서는 다음 두 개의 보안카탈로그 뷰를 사용할 수 있다. sys.server_principals : 로그인의 이름, 시스템 로그인 및 고정 서버 역할을 확인 sys.server_role_members : 서버 역할 멤버 자격 및 고정 서버 역할 멤버의 principal_id..

비관리자 계정에 Profiler 실행 권한 부여하기

비관리자 계정에 Profiler 실행 권한 부여하기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 SQL Server Profiler는 추적을 작성 및 관리하고 추적 결과를 분석하거나 특정 단계를 재생 할 수 있다. SQL Server Profiler : https://msdn.microsoft.com/ko-kr/library/ms181091.aspx SQL Server Profiler를 사용하기 위해서는 ALTER TRACE 권한이 필요하다. 권한이 없을 때에는 다음과 같은 오류가 발생 한다. 실습을 통해서 ALTER TRACE 권한을 부여하는 방법에 대해서 알아본다. 우선 권한이 없는 일반 사용자 계정을 생성한다. USE Master; GO CREATE ..

SQL Server Agent 공유 일정 생성하기

SQL Server Agent 공유 일정 생성하기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 SQL Server Agent에서 Job을 등록하고 Job이 실행될 일정을 등록한다. 이때 여러 job에서 같은 시간에 반복되는 일정이 있더라도 매번 일정을 등록해 주어야 한다. 공유된 일정을 만들어서 해당 일정을 여러 Job에서 가져다 쓸 수 있으면 얼마나 편리할까? 이번 포스트는 SQL Server Agent의 공유 일정 사용법에 대해서 알아 본다. SSMS에서 [SQL Server Agent] – [Job]에서 마우스 오른쪽을 클릭하여 [일정 관리]를 선택 한다. 일정 관리를 클릭하면 현재 등록된 모든 일정에 대해서 확인 할 수 있다. 사용자가 등록한 일정 ..

확장 저장 프로시저를 활용한 논리디스크 용량 확인

확장 저장 프로시저를 활용한 논리디스크 용량 확인 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 DBA의 업무에서 중요한 작업 중 하나인 디스크 공간을 확인 하는 부분이다. 디스크의 총 용량, 사용 가능한 공간, 논리 드라이브의 정보 등을 확인하여 예기치 못한 장애에 대응할 수 있도록 해야 한다. 각 디스크 드라이브의 여유 공간을 확인하는 방법은 다양 하다. 윈도우 탐색기를 이용하여 파일 시스템 유형, 총 용량, 여유 가능한 공간 등을 확인 할 수 있다. 또 다른 방법으로는 확장 저장 프로시저 xp_fixeddrives을 사용하여 SQL Serve에서 직접 드라이브의 여유 공간을 확인 할 수 있다. 확장 저장 프로시저를 활용하여 논리 디스크의 정보를 확인하는..

DTC Transacntion 오버헤드

DTC Transacntion 오버헤드 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 BEGIN DISTRIBUTED TRANSACTION은 분산 트랜잭션을 시작하도록 한다. SQL Server 데이터베이스 엔진 인스턴스는 트랜잭션 주관자로서 트랜잭션의 수행을 제어한다. 이후 세션에 대해 COMMIT TRANSACTON 또는 ROLLBACK TRANSACNTION 문을 실행하면 제어 인스턴스는 포함된 모든 인스턴스 간의 분산 트랜잭션 완료를 MS DTC에서 관리하도록 요청 한다. 일반적으로 많은 부분에서 DTC를 사용한다. 하지만 필요하지 않는 부분에서는 사용하지 않는 것이 가급적 오버헤드를 줄 일 수 있다. DTC는 single phase 또는 two ph..

대용량 로드를 위한 BULK INSERT 옵션

대용량 로드를 위한 BULK INSERT 옵션 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 대용량 데이터를 로드하는 방법은 다양하게 있다. 그 중 많이 사용하는 BULK INSERT의 다양한 옵션을 통해서 더 빠르게 데이터를 삽입하는 방법에 대해서 알아 본다. SQL Server로 데이터 가져오기 : http://sqlmvp.kr/140179374125 BULK INSERT : http://msdn.microsoft.com/ko-kr/library/ms188365.aspx BULK INSERT를 위한 샘플 데이터 생성(데이터 생성 시간이 오래 걸립니다.) -- Create sample table and indexes CREATE TABLE testtable..

로그인 계정이 접근할 수 있는 데이터베이스 확인

로그인 계정이 접근할 수 있는 데이터베이스 확인 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 SQL Server 로그인 계정은 특정한 데이터베이스에 접근할 수 있다. 생성된 로그인 계정이 접근 할 수 있는 데이터베이스를 확인하는 방법에 대해서 알아본다. 실습을 위해 로그인 계정을 생성한다. USE [master]; GO -- add "boss" to sysadmin: CREATE LOGIN boss WITH PASSWORD = 'x', CHECK_POLICY = OFF; ALTER SERVER ROLE sysadmin ADD Member boss; -- add "dev1" to serveradmin: CREATE LOGIN dev1 WITH PASSWORD..

클러스터된 SQL 서버 인스턴스에 대한 호스트 이름 확인

클러스터된 SQL 서버 인스턴스에 대한 호스트 이름 확인 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 SQL Server 클러스터 페일오버를 트러블슈팅할때 페일오버된 시간과 페일오버 이전 호스트의 이름을 확인하는 것은 필수 사항이다. 이번 시간에 장애조치가 발생한 시간과 이전에 실행된 SQL Server 이름을 확인하는 방법에 대해서 알아본다. SQL Server 클러스터링 환경에서 페일오버 이후에는 이전의 SQL Server 노드를 식별하는 것이 곤란하다. 로깅의 대부분이 네트워크 또는 가상 서버의 인스턴스명을 사용하기 때문이다. 이때 SQL Server 에러로그와 이벤트 뷰어 로그를 사용하여 확인 할 수 있다. SQL Server가 현재 실행중인 노드/..

sys.dm_tran_locks 를 이용한 잠금 정보 확인

sys.dm_tran_locks 를 이용한 잠금 정보 확인 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 Sys.dm_tran_locks는 현재 활성 상태인 잠금 관리자 리소스에 대한 정보를 반환 한다. 각 행은 이미 허용된 잠금 또는 허용 대기 중인 잠금에 대해 현재 활성 상태인 잠금 관리자 요청을 나타낸다. Sys.dm_tran_locks : http://msdn.microsoft.com/ko-kr/library/ms190345.aspx select * from sys.dm_tran_locks; Resource_type : 리소스 유형을 나타낸다. 리소스는 DATABASE, FILE, OBJECT, PAGE, KEY, EXTENT, RID, APPLICA..