index 개요

ㅇㅇ

index 주요 종류에 따른 방향성

클러스터형 index

비클러스터형 index
테이블 데이터에 영향을 주지 않고 검색 성능을 올릴 수 있어 유연하게 활용할 수 있다.
하지만 너무 많은 비클러스터형 index는 데이터 수정(INSERT, UPDATE, DELETE) 성능을 저하시켜 적절한 수 유지가 중요하다.

복합과 커버링 index 설명

Unique index 설명

힙 테이블에 대한 설명
Production 환경에서 주요 테이블은 적절한 clustered indexes를 가지는 것을 권장한다.
힙 테이블은 특수항 사용 사례에만 제한적으로 사용하는 것이 좋다.

Filtered Index 설명

그 외 특수한 index들은 B Tree index로 처리하기 어려운 특정 데이터에 대해 최적화한 index다.
특히 columnstore index는 SQL Server 2012부터 도입하여 데이터 웨어하우스 성능을 크게 향상했다.

생성

제거

index 재구성 개요

페이지 수가 적은 소형 index(1000 페이지 미만)는 조각화가 심해도 성능에 미치는 영향이 적을 수 있다.
리소스 효율성을 고려하여 대용량 index에 우선순위를 둬야 한다.

index 조각화 설명

조각화 측정 방법

조각화 자동화 관리

관리 대응 전략 1 - index 재구성

관리 대응 전략 2 - index rebuild

index 통계

index 모니터링

index 유지보수 작업 중에는 서버 리소스(CPU, Memory, Disk I/O)를 모니터링해야 한다.
리소스 사용량이 과도하게 높아 다른 작업에 영향을 미칠 경우, MAXDOP 옵션을 조정하여 작업 일정 변경을 고려해야 한다.

다양한 에러가 발생할 수 있다.
데이터베이스 설계 문제 식별

ㅇㅇ

경고 메시지는 쿼리에 암시적 변환(implicit conversion)이 있음을 나타낸다.
이는 SQL Server 쿼리 최적화 프로그램이 쿼리의 데이터 형식을 다른 데이터 형식으로 변환해야 했음을 의미한다.
암시적 변환이란, SQL Server가 서로 다른 데이터 타입을 비교할 때 자동으로 수행하는 데이터 타입 변환이다

암시적 변환은 다음과 같은 문제점이 있다.
└ 성능 저하: 추가적인 CPU 오버헤드 발생
└ 인덱스 비활용: 변환으로 인해 인덱스 사용 불가능
└ 통계 부정확성: 쿼리 최적화기의 예상치와 실제 결과의 차이

WHERE 절에서 NationalIDNumber열과 비교되는 값이 따옴표로 묶이지 않은 숫자(14417807)로 적혀있다.
테이블 구조를 검토하면 NATIONALIDNUMBER 열이 INT(정수) 데이터 형식이 아닌 NVARCHAR(문자열)를 사용해야 한다.
이러한 불일치로 인해 DB 최적화 프로그램은 숫자를 NVARCHAR 값으로 암시적으로 변환한다.
이는 최적이 아닌 계획을 생성하여 쿼리 성능에 추가적인 오버헤드를 유발한다.
'공부 > Microsoft Data School 1기' 카테고리의 다른 글
| AzureSQLServer 운영 및 관리 8 (4) | 2025.08.13 |
|---|---|
| AzureSQLServer 운영 및 관리 7 (1) | 2025.08.12 |
| AzureSQLServer 운영 및 관리 5 (4) | 2025.08.08 |
| AzureSQLServer 운영 및 관리 4 (1) | 2025.08.07 |
| AzureSQLServer 운영 및 관리 3 (4) | 2025.08.06 |