SQL Server/SQL Server Tip 662

SQL Server 페이지 및 익스텐트 아키텍처(3/4) – 개체에서 사용하는 공간 관리

SQL Server 페이지 및 익스텐트 아키텍처(3/4) – 개체에서 사용하는 공간 관리 Version : SQL Server 2005, 2008, 2008R2, 2012 앞의 포스팅에서 페이지 및 익스텐트에 대한 이해, 익스텐트 할당 및 빈 공간 관리등에 대해서 살펴 보았다. 페이지 및 익스텐트 이해 : http://sqlmvp.kr/140186753568 익스텐트 할당 및 빈 공간 관리 : http://sqlmvp.kr/140186842239 이번 시간에는 개체에서 사용하는 공간 관리에 대해서 알아 본다. IAM(Index Allocation Map)페이지는 할당 단위에 사용되는 데이터베이스 파일의 4GB 부분에 익스텐트를 매핑한다. 할당 단위의 유형은 다음과 같다. IN_ROW_DATA : 힙 또는..

SQL Server 페이지 및 익스텐트 아키텍처(2/4) – 익스텐트 할당 및 빈공간 관리

SQL Server 페이지 및 익스텐트 아키텍처(2/4) – 익스텐트 할당 및 빈공간 관리 Version : SQL Server 2005, 2008, 2008R2, 2012 앞에서 SQL Server의 기본 저장공간 단위는 페이지(8KB)이며 8개의 페이지가 모여 익스텐트로 불리며 관리 된다고 설명 하였다. 페이지 및 익스텐트 이해 : http://sqlmvp.kr/140186753568 이번 시간에는 익스텐트 할당 미 및 빈공간에 대해서 어떻게 관리하는지 알아 보자. 익스텐트 할당을 SQL Server의 구조는 비교적 간단하다. 이 데이터 구조를 사용하면 다음과 같은 이점이 있다. 빈 공간 정보는 빽빽하게 묶여 있으므로 이 정보를 포함하는 페이지의 수는 비교적 적다. 따라서 할당 정보 검색에 필요한 디..

SQL Server 페이지 및 익스텐트 아키텍처(1/4) – 페이지 및 익스텐트 이해

SQL Server 페이지 및 익스텐트 아키텍처(1/4) – 페이지 및 익스텐트 이해 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server의 기본 저장 단위는 페이지 이다. 익스텐트는 물리적인 페이지 8개의 모음이다. 앞으로 총 4부에 걸쳐 페이지 및 익스텐트의 아키텍처를 살펴 보자. 페이지 및 익스텐트 아키텍처를 이해 함으로써 데이터베이스를 효율적인 디자인 및 개발 하는데 많은 도움이 된다. SQL Server의 기본 저장 단위는 페이지라고 하였다. 데이터베이스에서 할당되는 데이터 파일(MDF, LDF)의 디스크 공간은 논리적인 페이지로 나누어 지며 0 ~ N 까지의 숫자가 연속적으로 페이지에 부여 된다. 디스크 I/O 작업은 페이지 수준에서 수행되며 익..

SQL Server Error Log 보관 주기 설정

SQL Server Error Log 보관 주기 설정 Version : SQL Server 2005, 2008, 2008R2, 2012 DB를 운영할 때 많이 보게 되는 항목 중 하나가 SQL Server ErrorLog 이다. 에러로그는 SQL Server에 문제가 발생 하였을 때나 서비스가 재시작, 또는 사용자가 지정한 내용에 대해서 로그를 남겨주는 기능을 한다. 서비스가 재시작 될 때마다 SQL Server Errorlog는 다음 순서로 싸이클링 된다. 문제는 장애나 기타 문제로 인하여 SQL Server의 에러로그가 많이 남았을 때 보관 개수로 인하여 실제 문제가 발생했던 시점의 에러를 확인하지 못하는 경우가 발생 한다. 그래서 에러로그의 보관 개수를 크게 설정 할 필요가 있다. 지난 아티클에서 ..

Anti-Virus로 인한 SQL Server 트러슈팅 (백신으로 인한 SQL Server 장애)

Anti-Virus로 인한 SQL Server 트러슈팅 (백신으로 인한 SQL Server 장애) Version : All Version Anti-Virus(백신 소프트웨어)가 정말 SQL Server 운영에 영향을 미치는가? 결론부터 말하면 '그렇다' 이다. 이 문제는 필자도 겪은 문제이기도 하지만 해결은 의외로 간단하다. 우선 이슈부터 살펴보자. 아래 이슈는 2013년 3월29일 SQL Server CSS 팀블로그의 내용이다. 아마도 이 글을 보는 DBA분들 중에도 동일하거나 비슷한 이슈를 겪은 분들이 있으리라 생각한다. 원본 링크 : http://blogs.msdn.com/b/psssql/archive/2013/03/29/the-case-of-anti-virus-filter-drive-interfe..

SQL Server 네트워크 백업 트러블슈팅(UNC 설정)

SQL Server 네트워크 백업 트러블슈팅(UNC 설정) Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서 데이터베이스를 백업 할 때 로컬에 있는 하드디스크 뿐만 아니라 네트워크에 있는 다른 서버의 드라이브에도 백업 할 수도 있다. 그런데 네트워크에 있는 서버의 디스크를 네트워크 드라이브로 잡아서 해당 드라이브에 백업하려고 하면 백업 실패가 발생 한다. 이럴 때 UNC 방식을 사용하면 백업 작업을 수행 할 수 있다. [UNC란?] 네트워크에서 UNC는 컴퓨터 내의 공유 폴더 또는 파일이 저장되어 있는 장치를 명시하지 않고도 그 파일을 확인하기 위한 방법이다. 윈도우 운영체제에서 UNC 형식은 다음과 같아. \\Servername\Sharename\..

SQL Server 인증 실패시 반환되는 클라이언트 메시지 정보

SQL Server 인증 실패시 반환되는 클라이언트 메시지 정보 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에 로그인을 할 때 오류가 발생 하였다. 이때 클라이언트에 반환되는 오류 메시지에는 다양한 정보가 포함되어 있다. 이 메시지를 파악함으로써 문제 해결에 큰 도움이 된다. 다음의 경우를 살펴보자. 아래 그림은 단순히 SSMS에서 비밀번호와 ID를 틀리게 작성하여 로그인을 시도한 결과이다. (대부분의 경우는 응용프로그램에서 SQL Server에 접속하여 사용는 환경일 것이다.) 또는 .NET 어플리케이션에서 다음과 같은 메시지를 반환 할 수도 있다. 사용자 ''이(가) 로그인하지 못했습니다.(.Net SqlClient 데이터 공급자)" -----..

SQL Server에 할당된 메모리 개체 확인

SQL Server에 할당된 메모리 개체 확인 Version : SQL Server 2008, 2008R2, 2012 최근 들어 내가 관리하는 서버에 다음과 같인 Memory pressure라는 에러 로그를 확인 하였다. 이 에러는 무엇 일까? 왜 일어 났을까? Memory prossure는 SQL Server에서 시스템 메모리의 압박을 받을 때 메모리의 내용을 드릴다운 하여 발생 한다. 나의 경우에는 CLR을 사용하는 부분이 있는데 이 부분에서 개체 할당에 대한 압력 있을 때 발생 한다. (대부분 닷넷 코드를 잘못 만들었을 때 발생 하는 듯 하다.) 그렇다면 현재 할당되어 있는 메모리 개체 정보를 확인 하는 방법은 없을까? 다음 DMV를 통하여 확인 할 수 있다. SELECT SUM (omo.pages..

SQL Server 비동기 업데이트 활성 / 비활성에 따른 특성

SQL Server 비동기 업데이트 활성 / 비활성에 따른 특성 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서 AUTO_UPDATE-STATISTICS_ASYNC(비동기 통계 업데이트) 옵션은 자동 통계 업데이트에 영향을 준다. 쿼리 최적화 프로그램이 동기 또는 비동기 통계 업데이트를 사용하는지를 결정 한다. AUTO_UPDATE-STATISTICS_ASYNC의 기본 값은 OFF 이다. 동기 통계 업데이트의 경우 쿼리는 항상 최신 통계로 컴파일 하고 실행 한다. 통계가 최신이 아닌 경우 쿼리를 컴파일 하고 실행하기 전에 쿼리 최적화 프로그램에서 업데이트 된 통계를 기다린다. [사용 경우] 대량 업데이트를 수행 하는 경우와 같이 데이터 분포를 변경..

DBCC CHECKDB와 Compute Column 인덱스의 성능 관계

DBCC CHECKDB와 Compute Column 인덱스의 성능 관계 Version : SQL Server 2005, 2008, 2008R2, 2012 하단의 참고 자료를 바탕으로 내용을 이해 하려고 하였으며 테스트를 진행 하였지만 원하는 결과가 도출 되지 않았다. (첨부 그림은 필자가 테스트한 내용이다.) 자세한 내용은 참고자료를 확인 하길 바란다. 참고 자료에 의하면 우리가 흔히 사용하는 DBCC CHECKDB (CHECKTABLE_의 성능이 계산된 열의 인덱스를 포함하고 있을 때 성능이 느려진다고 한다. 계산된 열에 비클러스터형 인덱스를 사용하는 경우 계산된 열의 값은 열 정의에 따라 계산되어야 한다. 이를 위해 내부 메커니즘은 'expression evaluator'이라는 것을 생성 한다. 'e..