sys.dm_db_missing_index_columns(Transact-SQL)

공간 인덱스를 제외하고 인덱스가 없는 데이터베이스 테이블 열에 대한 정보를 반환합니다. sys.dm_db_missing_index_columns는 동적 관리 함수입니다.

구문

sys.dm_db_missing_index_columns(index_handle)

인수

반환된 테이블

열 이름

데이터 형식

설명

column_id

int

열의 ID입니다.

column_name

sysname

테이블 열의 이름입니다.

column_usage

varchar(20)

열이 쿼리에 사용되는 방법입니다. 가능한 값은 다음과 같습니다.

설명

EQUALITY

열이 다음 형식으로 같음을 표시하는 조건자에 적용됩니다.

table.column =constant_value

INEQUALITY

열이 다음 형식으로 같지 않음을 표시하는 조건자에 적용됩니다.

table.column > constant_value

"="가 아닌 모든 비교 연산자는 같지 않음을 표시합니다.

INCLUDE

열이 조건자를 계산하는 데 사용되지 않고 쿼리를 포함하는 등 다른 용도로 사용됩니다.

주의

sys.dm_db_missing_index_columns에서 반환된 정보는 쿼리 최적화 프로그램이 쿼리를 최적화할 때 업데이트되며 지속되지 않습니다. 누락된 인덱스 정보는 SQL Server를 다시 시작할 때까지만 유지됩니다. 서버 재활용 후에도 누락된 인덱스 정보를 유지하려면 데이터베이스 관리자가 정기적으로 누락된 인덱스 정보의 백업 복사본을 만들어야 합니다.

트랜잭션 일관성

트랜잭션이 테이블을 만들거나 삭제하면 삭제된 개체에 대한 누락된 인덱스 정보가 포함된 행이 이 동적 관리 개체에서 제거되어 트랜잭션 일관성이 유지됩니다.

사용 권한

이 동적 관리 함수를 쿼리하려면 사용자에게 VIEW SERVER STATE 권한이나 VIEW SERVER STATE 권한을 나타내는 사용 권한을 부여해야 합니다.

다음 예에서는 Address 테이블에 대한 쿼리를 실행한 다음 인덱스가 없는 테이블 열을 반환하도록 sys.dm_db_missing_index_columns 동적 관리 뷰를 사용하여 쿼리를 실행합니다.

USE AdventureWorks2012;
GO
SELECT City, StateProvinceID, PostalCode
FROM Person.Address
WHERE StateProvinceID = 9;
GO
SELECT mig.*, statement AS table_name,
    column_id, column_name, column_usage
FROM sys.dm_db_missing_index_details AS mid
CROSS APPLY sys.dm_db_missing_index_columns (mid.index_handle)
INNER JOIN sys.dm_db_missing_index_groups AS mig ON mig.index_handle = mid.index_handle
ORDER BY mig.index_group_handle, mig.index_handle, column_id;
GO

참고 항목

참조

sys.dm_db_missing_index_details(Transact-SQL)

sys.dm_db_missing_index_groups(Transact-SQL)

sys.dm_db_missing_index_group_stats(Transact-SQL)