экспортировать результаты работы агента sql в файл .csv - PullRequest
0 голосов
/ 29 ноября 2010

В качестве оптимизации производительности я перестроил индекс для базы данных.

Я использовал ALTER TABLE ALL НА @table REBUILD WITH (FILLFACTOR = @fillfactor).

Я бы хотел запланировать это как работу агента.

Теперь мое требование как:

  1. Мне нужно экспортировать статистику индекса в файл csv перед перестройкой индекса

  2. перестроить индекс

  3. статистика экспорта индекса в файл csv после перестройки индекса.

Я обнаружил сценарий перестроения индекса в задании агента и вручную выполнил запрос статистики индекса, чтобы увидеть состояние до и после задания агента.

как мне нужно автоматизировать процесс

  1. Индекс статистики перед перестройкой
  2. восстановление
  3. Статистика после перестройки.

Я использую этот скрипт для статистики.

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).

спасибо Правь

1 Ответ

1 голос
/ 29 ноября 2010

Хм, если вы поместите свой скрипт sql в процесс с именем sp_IndexStats, вы можете написать второй процесс, который будет выглядеть примерно так:

EXEC master..xp_cmdshell 'osql.exe -S YourServerName -U sa -P yourpassword -Q "EXEC     sp_IndexStats" -o "C:\mypath\IndexBefore.csv"'
GO
ALTER TABLE ALL ON @table REBUILD WITH (FILLFACTOR = @fillfactor)
GO
EXEC master..xp_cmdshell 'osql.exe -S YourServerName -U sa -P yourpassword -Q "EXEC sp_IndexStats" -o "C:\mypath\IndexAfter.csv"'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...