sys.dm_db_missing_index_groups (Transact-SQL)

Applies to: yesSQL Server (all supported versions) YesAzure SQL Database

This DMV returns information about indexes that are missing in a specific index group, except for spatial indexes.

In Azure SQL Database, dynamic management views cannot expose information that would impact database containment or expose information about other databases the user has access to. To avoid exposing this information, every row that contains data that doesn't belong to the connected tenant is filtered out.

Column name Data type Description
index_group_handle int Identifies a missing index group.
index_handle int Identifies a missing index that belongs to the group specified by index_group_handle.

An index group contains only one index.


Information returned by sys.dm_db_missing_index_groups is updated when a query is optimized by the query optimizer, and is not persisted. Missing index information is kept only until the database engine is restarted. Database administrators should periodically make backup copies of the missing index information if they want to keep it after server recycling. Use the sqlserver_start_time column in sys.dm_os_sys_info to find the last database engine startup time.

Neither column of the output result set is a key, but together they form an index key.


The result set for this DMV is limited to 600 rows. Each row contains one missing index. If you have more than 600 missing indexes, you should address the existing missing indexes so you can then view the newer ones.


To query this dynamic management view, users must be granted the VIEW SERVER STATE permission or any permission that implies the VIEW SERVER STATE permission.

See Also

sys.dm_db_missing_index_columns (Transact-SQL)
sys.dm_db_missing_index_details (Transact-SQL)
sys.dm_db_missing_index_group_stats (Transact-SQL)
sys.dm_db_missing_index_group_stats_query (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)