作为性能优化,我做了索引重建数据库。将sql代理作业结果导出到.csv文件
我用ALTER TABLE ALL ON @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).
感谢 prav
谢谢你,我创建一个SSIS包以一种交替的方式,它已经解决了这个问题,但是你的解决方案比我实现的要简单得多,但是在方法中没有性能问题,但是你的方法激励了我。谢谢 – prav 2010-11-29 03:54:25