SQL Server 2005 sungheehadconsulting co kr SQL Server

  • Slides: 40
Download presentation
SQL Server 2005 인덱스 하성희 sungheeh@adconsulting. co. kr 에이디컨설팅 / 대표 컨설턴트 SQL Server

SQL Server 2005 인덱스 하성희 sungheeh@adconsulting. co. kr 에이디컨설팅 / 대표 컨설턴트 SQL Server MVP

sys. dm_db_index_physical_stats • 구문 SELECT * FROM sys. dm_db_index_physical_stats ( { database_id | NULL

sys. dm_db_index_physical_stats • 구문 SELECT * FROM sys. dm_db_index_physical_stats ( { database_id | NULL } , { object_id | NULL } , { index_id | NULL | 0 } , { partition_number | NULL } , { mode | NULL | DEFAULT });

ALTER INDEX 문에서 지원하는 기능 • 인덱스 비활성화 ALTER INDEX IX_Cust. DOB ON Sales.

ALTER INDEX 문에서 지원하는 기능 • 인덱스 비활성화 ALTER INDEX IX_Cust. DOB ON Sales. Customer DISABLE • 인덱스 재작성 (Reindexing) ALTER INDEX PK_Cust. Id ON Sales. Customer REBUILD • 인덱스 재구성 (Reorganizing) ALTER INDEX PK_Cust. Id ON Sales. Customer REORGANIZE • 옵션 설정 ALTER INDEX PK_Cust. Id ON Sales. Customer SET(. . . )

ALTER INDEX. . REORGANIZE • 개별 파티션에도 적용 가능 • 알고리즘이 IX B-트리 잠금을

ALTER INDEX. . REORGANIZE • 개별 파티션에도 적용 가능 • 알고리즘이 IX B-트리 잠금을 사용 • 예: ALTER INDEX AK_Sales. Order. Header_Sales. Order. Number ON Sales. Order. Header REORGANIZE;

인덱스 성능 통계 • sys. dm_db_index_usage_stats • sys. dm_db_index_operational_stats

인덱스 성능 통계 • sys. dm_db_index_usage_stats • sys. dm_db_index_operational_stats

sys. dm_db_index_operational_stats • 반환 정보 – 테이블 또는 인덱스의 파티션 별 현재의 low-level I/O,

sys. dm_db_index_operational_stats • 반환 정보 – 테이블 또는 인덱스의 파티션 별 현재의 low-level I/O, 잠금, latching, 액세스 방식 • 구문 SELECT * FROM sys. dm_db_index_operational_stats ( { database_id | NULL } , { object_id | NULL } , { index_id | NULL | 0 } , { partition_number | NULL })

Included Column 인덱스 생성 USE Adventure. Works; GO CREATE INDEX IX_Address_Postal. Code ON Person.

Included Column 인덱스 생성 USE Adventure. Works; GO CREATE INDEX IX_Address_Postal. Code ON Person. Address (Postal. Code) INCLUDE (Address. Line 1, Address. Line 2, City, State. Province. ID); GO

Included Column 정보 조회 CREATE PROCEDURE get_index_columns @object sysname AS DECLARE @oid int SELECT

Included Column 정보 조회 CREATE PROCEDURE get_index_columns @object sysname AS DECLARE @oid int SELECT @oid = object_id(@object) SELECT @object AS 'Object_Name', i. name AS 'Index_Name', c. name AS 'Column_Name', CASE ic. is_included_column WHEN 0 THEN 'KEY' ELSE 'INCLUDED' END AS '[KEY or INCLUDED]' FROM sys. index_columns ic JOIN sys. columns c ON ic. object_id = c. object_id AND ic. column_id = c. column_id JOIN sys. indexes i ON i. object_id = ic. object_id AND i. index_id = ic. index_id WHERE i. object_id = @oid AND i. index_id > 0

DBCC SHOW_STATISTICS • SQL Server 2000에서와 같이 세가지 형태의 결과 집합 을 제공 •

DBCC SHOW_STATISTICS • SQL Server 2000에서와 같이 세가지 형태의 결과 집합 을 제공 • 각 부분을 별개로 조회 가능함 – WITH STAT_HEADER • 기본 정보에 추가로 ‘String Index’ 를 제공함 – WITH DENSITY_VECTOR • 왼쪽을 기준으로 한 컬럼들의 부분 집합별 Density 정보 – WITH HISTOGRAM • SQL Server 2000에서와 동일한 정보: – – RANGE_ROWS EQ_ROWS DISTINCT_RANGE_ROWS AVG_RANGE_ROWS