Здравейте
Всички индекси в базата данни на 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;