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

Неизползван индекс на SQL Server

Здравей,

SQL Server DBA трябва да наблюдава всички индекси и кои от индексите се използват и кои не.

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

Можете да намерите статистика за използване на всички индекси със следния скрипт. Скриптът също така ще генерира скрипт за пускане на индекс, можете да използвате този скрипт за безопасно премахване на индекса.

SELECT 
o.name
, indexname=i.name
, i.index_id   
, reads=user_seeks + user_scans + user_lookups   
, writes =  user_updates   
, rows = (SELECT SUM(p.rows) FROM sys.partitions p WHERE p.index_id = s.index_id AND s.object_id = p.object_id)
, CASE
	WHEN s.user_updates < 1 THEN 100
	ELSE 1.00 * (s.user_seeks + s.user_scans + s.user_lookups) / s.user_updates
  END AS reads_per_write
, 'DROP INDEX ' + QUOTENAME(i.name) 
+ ' ON ' + QUOTENAME(c.name) + '.' + QUOTENAME(OBJECT_NAME(s.object_id)) as 'drop statement'
FROM sys.dm_db_index_usage_stats s  
INNER JOIN sys.indexes i ON i.index_id = s.index_id AND s.object_id = i.object_id   
INNER JOIN sys.objects o on s.object_id = o.object_id
INNER JOIN sys.schemas c on o.schema_id = c.schema_id
WHERE OBJECTPROPERTY(s.object_id,'IsUserTable') = 1
AND s.database_id = DB_ID()   
AND i.type_desc = 'nonclustered'
AND i.is_primary_key = 0
AND i.is_unique_constraint = 0
AND (SELECT SUM(p.rows) FROM sys.partitions p WHERE p.index_id = s.index_id AND s.object_id = p.object_id) > 10000
ORDER BY reads;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SqlBulkCopy Вмъкване с колона за идентичност

  2. Каква е целта на използването на OPTION(MAXDOP 1) в SQL Server?

  3. AT TIME ZONE – нова любима функция в SQL Server 2016

  4. Най-добрите опции за наблюдение на бази данни, налични за вашия бизнес

  5. Ограничението на външния ключ може да причини цикли или множество каскадни пътища?