SQL Server/SQL Server Tip 662

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

로그인 계정이 접근할 수 있는 데이터베이스 확인 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..

외래키 제약 조건 삭제 후 재작성 스크립트 생성하기

외래키 제약 조건 삭제 후 재작성 스크립트 생성하기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 외래키 삭제 후 재작성 하는 스크립트를 생성하는 스크립트이다. SSMS 기능에도 스크립트 생성 기능은 있지만 스키마 또는 데이터 및 스키마, 데이터만 가능하다. 아래 스크립트는 외래키만 삭제, 생성하는 쿼리문을 만들어 제공한다. CREATE TABLE #x -- feel free to use a permanent table ( drop_script NVARCHAR(MAX), create_script NVARCHAR(MAX) ); DECLARE @drop NVARCHAR(MAX) = N'', @create NVARCHAR(MAX) = N''; -- drop is ..

페이지 ID로 테이블 이름 찾기

페이지 ID로 테이블 이름 찾기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 손상된 페이지가 있을 때 어느 테이블의 손상인지 확인 하는 방법에 대해서 알아본다. 손상된 페이지가 있을 경우 일반적으로 DBCC CHECKDB를 실행하지만 데이터베이스가 TB 단위인 경우에는 이 문제를 파악하기 위해 몇 시간이 걸릴지도 모르는 일이다. 또 다른 확인 방법으로는 PAGELATCH_EX 대기를 보고 sys.dm_os_waiting_tasks 의 resource_description 정보를 이용하여 테이블 이름을 알아 낼 수도 있다. suspect_pages 테이블의 데이터를 이용하여 테이블 이름을 확인해 보자. Suspect_page 테이블은 SQL Server 20..

DBCC CHECKPRIMARYFILE 사용법

DBCC CHECKPRIMARYFILE 사용법 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 현재 생성되어 있는 데이터베이스의 파일정보를 확인하는 방법에는 SSMS를 활용한 방법과 쿼리로 확인하는 방법이 있다. SSMS의 UI를 사용하는 경우 데이터베이스 수 만큼 클릭하여 확인해야 하는 반복적인 노동 작업이다. 문서화 되지 않은 DBCC CHECKPRIMARYFILE 명령을 이용하면 파일의 메타 정보(디스크 경로, 데이터베이스 이름)를 쉽게 확인 할 수 있다. 비록 문서화 되어 있지 않은 명령어 이지만 위험성이 없는 작업이므로 걱정하지 않아도 된다. [기본 구문] Syntax:DBCC CHECKPRIMARYFILE ({'PhysicalFileName'} [,..

컬럼스토어 인덱스 대용량 데이터 로드

컬럼스토어 인덱스 대용량 데이터 로드 Column Store Index Bulk Load Data Version : SQL Server 2012, 2014 클러스터 컬럼 스토어 인덱스 대용량 데이터 로드 이전 포스팅에서 컬럼스토어 인덱스에 대한 동시성 및 인서트 동시성에 대해서 살펴 보았다. 컬럼스토이 인덱스 ROW와 ROWGROUP 영향 : http://sqlmvp.kr/220122469205 컬럼스토어 인덱스 동시성 : http://sqlmvp.kr/220130069090 컬럼스토어 인덱스 INSERT 작업과 동시성 : http://sqlmvp.kr/220132145097 이번 포스트는 대용량 데이터 로드(Bulk load)를 통해 데이터가 삽입될 때 잠금 동작에 대해서 설명한다. 테스트용 기본 테이..

컬럼스토어 인덱스 INSERT 작업과 동시성

컬럼스토어 인덱스 INSERT 작업과 동시성 Column Store Index Concurrency with INSERT Version : SQL Server 2012, 2014 클러스터 컬럼 스토어 INSERT 이전 블로그에 설명한 바와 같이 클러스터된 컬럼스토어 인덱스는 DW 시나리오에서 빠른 쿼리 성능으로 데이터로드에 최적화 되어 있다. 대량의 인서트 작업에서도 DW 쿼리는 커밋되지 않은 읽기(Read Uncommitted) 격리 수준에서 병렬로 데이터를 로드 할 수 있다. 컬럼스토어 인덱스 동시성 : http://sqlmvp.kr/220130069090 데이터가 동시에 인서트 될 때 잠금 동작에 대해서 알아 본다. Version : SQL Server 2014 CREATE TABLE [dbo].[..

컬럼스토어 인덱스 동시성

컬럼스토어 인덱스 동시성 Column Store Index Concurrency and Isolation Levels Version : SQL Server 2012, 2014 클러스터 컬럼 스토어와 동시성 클러스터 컬럼스토어 인덱스(Clustered column index(CCI))는 기본적으로 데이터웨어하우스 시나리오에 기반하여 디자인 되어 있다. 한 번 쓰고 여러 번 읽기 : CCI는 쿼리 성능에 최적화 되어 있다. 이는 기둥 형식으로 압축된 데이터에서 필요한 컬럼만 가져와서 성능을 높인다. 대량 데이터 가져오기 및 세류(천천히) 데이터 로드 : 인서트 오퍼레이션 INSERT / UPDATE를 지원하지만 이러한 작업은 대량의 작업에 최적화 되어 있지 않다. 사실 동시성 경우 DELETE / UPDAT..

컬럼스토어 인덱스 ROW와 ROWGROUP 영향

컬럼스토어 인덱스 ROW와 ROWGROUP 영향 Version : SQL Server 2012, 2014 SQL Server 메모리 내 Columnstore 인덱스는 열 기반 데이터 저장소 및 열 기반 쿼리 처리를 사용하여 데이터를 저장하고 관리한다. Columnstore 인덱스는 주로 대량 로드 및 읽기 전용 쿼리를 수행하는 데이터웨어 하우징 작업에 효과적이다. columnstore index는 columnstore라는 칼럼 데이터 형식을 사용하여 데이터를 저장, 검색 및 관리하는 기술이다. SQL Server는 클러스터형 columnstore 인덱스와 비클러스터형 columnstore 인덱스를 모두 지원한다. 둘 다 동일한 메모리 내 columnstore 기술을 사용하지만 용도와 지원 기능에 차이가 ..