MSSQL 103

인덱스 유지관리 작업과 SQL Server 쿼리 성능

인덱스 유지관리 작업과 SQL Server 쿼리 성능 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 SQL Server 데이터베이스 엔진에서는 기본 데이터에 삽입, 업데이트 또는 삭제 작업을 수행할 때마다 인덱스를 자동으로 유지 관리한다. 이러한 수정이 거듭되면 시간이 흐름에 따라 인덱스의 정보가 조각화되어 데이터베이스 내에 흩어지게 될 수 있다. 조각화는 키 값을 기준으로 하는 인덱스의 논리적 페이지 순서가 데이터 파일 내의 물리적 순서와 일치하지 않을 때 나타난다. 심하게 조각화된 인덱스는 쿼리 성능을 저하시키고 응용 프로그램의 응답이 느릴 수 있다. 인덱스 조각화가 심할 경우에는 Reorganization 또는 Rebuild에 대한 고민을 하게 되는데 ..

네트워크 드라이브에 데이터베이스 복원하기

네트워크 드라이브에 데이터베이스 복원하기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 SQL Server에서 데이터베이스 복원작업을 진행 할 때 SSMS를 사용할 경우 로컬 드라이브만 표시 된다. 원격지의 네트워크 드라이브에 데이터베이스를 복원할 때 드라이브 목록에 네트워크 드라이브를 추가할 수 있는 방법에 대해서 알아 본다. 데이터베이스를 복원할 때 로컬의 드라이브만 표시 된다. 네트워크 드라이브를 추가 하기 위해 Windows에서 네트워크 드라이브를 매핑해야 한다. 네트워크 드라이브 매핑이 완료 되었으면 SQL Server에서 해당 네트워크 드라이브를 식별하기 위해 xp_cmdshell 명령을 사용해야 한다. Xp_cmdshell은 기본적으로 비활성화 ..

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

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

날짜 참조 테이블 만들기

날짜 참조 테이블 만들기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 데이터를 검색 할 때 가장 많이 사용되는 조건 중 하나가 날짜 일 것이다. 다양한 통계 쿼리를 만들다 보면 날짜 범위에 관한 조건문이 많이 사용되는데 이때 해당 기간을 검색하기 위한 참조 테이블을 만들어 사용하면 편리하다. (흔히 날짜 차원 테이블이라고 부른다.) 날짜 참조 테이블을 생성한다. USE TEMPDB IF OBJECT_ID('dbo.#t') is not null DROP TABLE dbo.#t; CREATE TABLE #t ( [Date] datetime , [Year] smallint , [Quarter] tinyint , [Month] tinyint , [Day] smal..

인덱스 상세 정보 확인

인덱스 상세 정보 확인 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 테이블 또는 뷰의 인덱스에 관한 정보를 확인하기 위해서 sp_helpindex를 많이 사용한다. Sp_helpindex는 SQL Server 2005부터 지원하고 있다. use AdventureWorks2012 go exec sp_helpindex 'Sales.SalesOrderdetail' 열 이름 데이터 형식 설명 Index_name Sysname 인덱스 이름 Index_description Varchar(21) 인덱스가 있는 파일 그룹을 포함하는 인덱스 설명 Index_keys Nvarchar(2078) 인덱스가 만들어진 테이블 또는 뷰의 열 Sp_helpindex의 경우 기본 정보만..

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..

SQL Server 2014 Diagnostic Information Queries

SQL Server 2014 Diagnostic Information Queries Version : SQL Server 2014 SQL Server 2014 진단 쿼리 – 이 쿼리 한방이면 SQL 상태 확인 가능. 첨부파일 SQL Server 2014 Diagnostic Information Queries.txt 참고. -- SQL Server 2014 Diagnostic Information Queries -- Glenn Berry -- December 2014 -- Last Modified: December 18, 2014 -- http://sqlserverperformance.wordpress.com/ -- http://sqlskills.com/blogs/glenn/ -- Twitter: Glen..

SQL Server 2008R2 Diagnostic Information Queries

SQL Server 2008R2 Diagnostic Information Queries Version : SQL Server 2008R2 SQL Server 2008R2 진단 쿼리 – 이 쿼리 한방이면 SQL 상태 확인 가능. 첨부파일 SQL Server 2008R2 Diagnostic Information Queries.txt 참고. -- SQL Server 2008 R2 Diagnostic Information Queries -- Glenn Berry -- December 2014 -- Last Modified: December 18, 2014 -- http://sqlserverperformance.wordpress.com/ -- http://sqlskills.com/blogs/glenn/ -- Tw..

SQL Server 2008R2 Diagnostic Information Queries

SQL Server 2008R2 Diagnostic Information Queries Version : SQL Server 2008R2 SQL Server 2008R2 진단 쿼리 – 이 쿼리 한방이면 SQL 상태 확인 가능. 첨부파일 SQL Server 2008R2 Diagnostic Information Queries.txt 참고. -- SQL Server 2008 R2 Diagnostic Information Queries -- Glenn Berry -- December 2014 -- Last Modified: December 18, 2014 -- http://sqlserverperformance.wordpress.com/ -- http://sqlskills.com/blogs/glenn/ -- Tw..