В качестве оптимизации производительности я перестроил индекс для базы данных.
Я использовал ALTER TABLE ALL НА @table REBUILD WITH (FILLFACTOR = @fillfactor).
Я бы хотел запланировать это как работу агента.
Теперь мое требование как:
Мне нужно экспортировать статистику индекса в файл csv перед перестройкой индекса
перестроить индекс
статистика экспорта индекса в файл csv после перестройки индекса.
Я обнаружил сценарий перестроения индекса в задании агента и вручную выполнил запрос статистики индекса, чтобы увидеть состояние до и после задания агента.
как мне нужно автоматизировать процесс
- Индекс статистики перед перестройкой
- восстановление
- Статистика после перестройки.
Я использую этот скрипт для статистики.
DECLARE @DATABASE VARCHAR(10)= 'AdventureWorksDW2008'
SELECT OBJECT_NAME(IPS.OBJECT_ID) AS [TABLENAME],
SI.NAME AS [INDEXNAME],
IPS.INDEX_TYPE_DESC,
IPS.AVG_FRAGMENTATION_IN_PERCENT,
IPS.AVG_FRAGMENT_SIZE_IN_PAGES,
IPS.AVG_PAGE_SPACE_USED_IN_PERCENT,
IPS.RECORD_COUNT,
IPS.GHOST_RECORD_COUNT,
IPS.FRAGMENT_COUNT,
IPS.AVG_FRAGMENT_SIZE_IN_PAGES
FROM SYS.DM_DB_INDEX_PHYSICAL_STATS(DB_ID(N''+ @DATABASE +''), NULL, NULL, NULL , 'DETAILED') IPS
JOIN SYS.TABLES ST WITH (NOLOCK) ON IPS.OBJECT_ID = ST.OBJECT_ID
JOIN SYS.INDEXES SI WITH (NOLOCK) ON IPS.OBJECT_ID = SI.OBJECT_ID AND IPS.INDEX_ID = SI.INDEX_ID
WHERE ST.IS_MS_SHIPPED = 0
ORDER BY 1,5
и для восстановления.
ALTER TABLE ALL ON @table REBUILD WITH (FILLFACTOR = @fillfactor).
спасибо
Правь