SQL Server/SQL Server Tip 663

Spatial Indexing 개요 (공간 인덱스)

Spatial Indexing 개요 (공간 인덱스) - Version : SQL Server 2008, 2008R2, 2012 SQL Server 2008부터 지원되는 공간인덱스는 공간 열을 인덱싱할 수 있는 확장된 인덱스의 유형이다. 공간 열은 geometry 또는 geography와 같은 공간 데이터 형식의 데이터를 포함하는 테이블 열이다. SQL Server에서 공간 인덱스는 B-tree를 사용하여 구성된다. 즉 인덱스가 2차원 공간 데이터를 B-tree의 선형 순서로 나타내야 한다는 뜻이다. 따라서 데이터를 공간 인덱스로 읽기 전에 SQL Server에서는 공간을 계층적으로 균일하게 분해하는 작업을 구현해야 한다. 인덱스 생성 프로세스에서는 공간을 계층 구조로 분해한다. 이러한 수준을 최상 위부터..

Event Session을 이용한 Session Health check

Event Session을 이용한 Session Health check - Version : SQL Server 2012 SQL Server 2012에서는 이벤트를 사용하여 SQL Server의 세션 상태를 확인 할 수 있다. 다음 스크립트를 사용하여 이벤트 정보를 확인한다. SET NOCOUNT ON -- Fetch data for only SQL Server 2012 instances IF (SUBSTRING(CAST(SERVERPROPERTY ('ProductVersion') AS varchar(50)),1,CHARINDEX('.',CAST(SERVERPROPERTY ('ProductVersion') AS varchar(50)))-1) >= 11) BEGIN -- Get UTC time differ..

SQL Server 2012 XML 플랜을 통한 병렬화 되지 않는 이유 살펴보기

SQL Server 2012 XML 플랜을 통한 병렬화 되지 않는 이유 살펴보기 - Version : SQL Server 2012 SQL Server는 2개 이상의 코어를 사용할 때에는 필요에 따라 병렬처리를 통하여 성능을 높인다. 간혹 병렬 처리가 가능한데도 병렬처리가 되지 않았을 때 그 이유를 알기 위해선 다양한 기술적인 지식과 노력이 필요했다. 이번 포스트는 CSS SQL Server Engineer 팀블로그에 게제된 내용으로 필자가 읽고 이해한 내용을 정리하였으며 번역의 오류나 기술적 오류 가능성이 있음을 미리 알려둔다. SQL Server 2012 부터는 XML 플랜에 계획하지 않거나 병렬화 할 수 없는 이유가 포함되도록 설계되었다. SQL Server 2012의 XML 플랜에서 "Query P..

Event Session을 이용한 SQL OS Session Schedule check

Event Session을 이용한 SQL OS Session Schedule check - Version : SQL Server 2012 SQL Server 2012에서 이벤트를 사용하여 SQL Server의 SQL OS Schedule 상태에 대한 정보를 확인하여보자. 다음 스크립트를 사용하여 이벤트 정보를 확인한다. 이벤트는 QUERY_PROCESSING 정보이다. SET NOCOUNT ON -- Fetch data for only SQL Server 2012 instances IF (SUBSTRING(CAST(SERVERPROPERTY ('ProductVersion') AS varchar(50)),1,CHARINDEX('.',CAST(SERVERPROPERTY ('ProductVersion') AS..

Event Session을 이용한 Memory Health check

Event Session을 이용한 Memory Health check - Version : SQL Server 2012 SQL Server 2012에서 이벤트를 사용하여 SQL Server의 Memory 사용률에 대한 정보를 확인하여보자. 다음 스크립트를 사용하여 이벤트 정보를 확인한다. SET NOCOUNT ON IF (SUBSTRING(CAST(SERVERPROPERTY ('ProductVersion') AS varchar(50)),1,CHARINDEX('.',CAST(SERVERPROPERTY ('ProductVersion') AS varchar(50)))-1) >= 11) BEGIN -- Get UTC time difference for reporting event times local to se..

Event Session을 이용한 CPU Health check

Event Session을 이용한 CPU Health check - Version : SQL Server 2012 SQL Server 2012에서는 이벤트를 사용하여 SQL Server 프로세스의 CPU 사용률과 시스템의 CPU 사용률에 대한 분단위의 정보를 얻을 수 있다. 또한 SQL Server에서 프로세스의 (소프트 및 하드)페이지 폴트 발생과 인스턴스 메모리의 사용량 변화, locked page 및 large page 할당 값을 얻을 수 있다. 다음 스크립트를 사용하여 이벤트 정보를 확인한다. SET NOCOUNT ON IF (SUBSTRING(CAST(SERVERPROPERTY ('ProductVersion') AS varchar(50)),1,CHARINDEX('.',CAST(SERVERPROP..

DMV를 이용한 I/O Health check

DMV를 이용한 I/O Health check - Version : SQL Server 2012 SQL Server를 운영할 때 디스크의 I/O는 DB의 성능과 매우 밀접한 관련이 있다. SQL Server 2012에서 I/O와 관련 래치 대기 시간 지속 시간 등을 sp_server_diagnostics 값을 이용하여 지속적인 I/O 자료를 수집하여 분석함으로써 SQL Server I/O 서브시스템의 상태를 확인 할 수 있다. 다음 스크립트는 DMV를 이용하여 성능을 수집한다. SET NOCOUNT ON -- Fetch data for only SQL Server 2012 instances IF (SUBSTRING(CAST(SERVERPROPERTY ('ProductVersion') AS varchar(..

CONCAT 함수 (문자열 연결하기)와 주의 사항

CONCAT 함수 (문자열 연결하기)와 주의 사항 - Version : SQL Server 2012 SQL Server 2012부터 도입된 CONCAT 함수는 둘 이상의 문자열 값을 연결한 결과를 반환하는 기능을 한다. CONCAT 함수는 다양한 개수의 문자열 인수를 가져와 단일 문자열로 연결한다. 최소 두 개의 입력 값이 필요하며 그렇지 않은 경우 오류가 발생 한다. 모든 인수는 문자열 형식의 암시적으로 변환된 다음 연결 된다. NULL 값은 암시적으로 빈 문자열로 변환되며 모든 문자가 NULL인 경우 varchar(1)형식의 빈 문자열로 반환된다. 변환 형식은 인수의 형식에 따라 달라진다. 인수가 nvarchar

SQL Server 2012 Columnstore Index

SQL Server 2012 Columnstore Index - Version : SQL Server 2012 SQL Server 2012 부터는 데이터베이스 테이블에 columnsotre 인덱스를 정의 할 수 있다. 클러스터형 인덱스와 비클러스터형의 rowstore(columnar) 인덱스 저장 데이터를 기존의 B-tree 구조와 달리 column-wise(in row) 형식으로 columnstore 인덱스를 저장한다. Columnstore 인덱스는 인덱스를 형성하기 위해 여러 열이 함께 결합되어 구성된다. 이 구조는 많은 양의 데이터를 요약하여 쿼리 할 때 상당한 성능 향상을 제공한다. 일반적으로 BI 및 DW 환경에서 많이 사용된다. [columnstore 구조] Columnstore 인덱스는 xV..

SQL Server 2012 File Stream / Table 관련 DMV

SQL Server 2012 File Stream / Table 관련 DMV - Version : SQLServer 2012 DMV는 SQL Server의 다양한 정보를 확인 할 수 있는 동적관리 뷰 이다. 파일스트림은 SQL Server 2012에 도입된 새로운 기능으로 SQLServer 기반의 응용 프로그램에서 문서 및 이미지와 같은 구조화 되지 않은 데이터파일을 시스템에 저장할 수 있는 기능이다. 응용 프로그램은 풍부한 스트리밍 API및 파일 시스템의 성능을 활용할 수 있고 동시에 구조화되지 않은 데이터와 해당되는 구조화된 데이터 간에 트랜잭션 일관성을 유지할 수있다. 파일스트림에 대한 자세한 내용은 다음 링크를 참고 한다 파일스트림 : http://msdn.microsoft.com/ko-kr/li..