Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Липсващ индекс на SQL Server

Здравей,

Използването на Index в базата данни на SQL Server се случва в среди, които изискват най-голяма производителност, скорост и спестяване на памет.

В таблица с милиони или милиарди записи можем да използваме индекс , за да четем по-малко записи и да търсим по-малко, за да намерим свързан запис.

Прецизно създаден индекс, милиони записи в базата данни, които сме търсили за много кратко време, за да донесем записа за удобство на обаждащия се, като в същото време по-малко четем записа чрез достигане на целевия запис, ние използваме ресурсите на операционната система ефективно.

Трябва да създадете индекс за предимно заявки само за четене в таблица. Ако операциите Delete,update са нещо повече от заявки само за четене, не трябва да създавате индекс на тази таблица.

Можете да разгледате препоръката за липсващ индекс на SQL Server със следния скрипт. Можете да създадете липсващ индекс, но трябва да наблюдавате тези индекси. Ако не са полезни, трябва да ги пуснете.

SELECT MID.[statement] AS ObjectName
,MID.equality_columns AS EqualityColumns
,MID.inequality_columns AS InequalityColms
,MID.included_columns AS IncludedColumns
,MIGS.last_user_seek AS LastUserSeek
,MIGS.avg_total_user_cost 
* MIGS.avg_user_impact 
* (MIGS.user_seeks + MIGS.user_scans) AS Impact
,N'CREATE NONCLUSTERED INDEX <TYPE_Index_Name> ' + 
N'ON ' + MID.[statement] + 
N' (' + MID.equality_columns 
+ ISNULL(', ' + MID.inequality_columns, N'') +
N') ' + ISNULL(N'INCLUDE (' + MID.included_columns + N');', ';')
AS CreateStatement
FROM sys.dm_db_missing_index_group_stats AS MIGS
INNER JOIN sys.dm_db_missing_index_groups AS MIG
ON MIGS.group_handle = MIG.index_group_handle
INNER JOIN sys.dm_db_missing_index_details AS MID
ON MIG.index_handle = MID.index_handle
WHERE database_id = DB_ID()
AND MIGS.last_user_seek >= DATEDIFF(month, GetDate(), -1)
ORDER BY Impact DESC;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво е базата данни, защо база данни?

  2. Как да поддържате реда на вмъкване в SQL Server

  3. SQL Server:Течове на ниво на изолация в обединените връзки

  4. Как да върнете нарастващ номер на група за група в SQL

  5. Управление на MDF файлове в SQL Server 2019