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

Заявка за възстановяване на индекс на SQL Server

Здравейте

Всички индекси в базата данни на SQL Server ще бъдат фрагментирани След като свързаните таблици са получили много актуализации, изтрийте транзакции.

Ако индексът в таблицата е фрагментиран, тогава всички транзакции, свързани с тази таблица, ще бъдат много бавни. Така че SQL Server DBA трябва често да наблюдава индексите и кои от индексите са фрагментирани и кои не са като следната екранна снимка.

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

declare @db int
select @db=DB_ID('DEVECI')
select 'ALTER INDEX [' + i.name +'] on '+OBJECT_NAME(s.object_id)+' REBUILD WITH (ONLINE = ON)',
objname = OBJECT_NAME(s.object_id),
s.object_id,
index_name= i.name,
index_type_desc, 
avg_fragmentation_in_percent
from sys.dm_db_index_physical_stats(@db,null,null,null,null) as s
join sys.indexes i on i.object_id = s.object_id and i.index_id = s.index_id 
where avg_fragmentation_in_percent>30
order by avg_fragmentation_in_percent desc, page_count 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 2017

  3. Как да използвате свойството IDENTITY() в SQL Server

  4. Време за изчакване на връзката за SQL сървър

  5. Форматирайте телефонен номер в SQL Server (T-SQL)