2012-10-25 81 views
4

我想弄清楚如何使用IndexOptimize這個IndexOptimize存儲過程,我從http://ola.hallengren.com/得到的存儲過程只針對單個表的索引運行。SQL Server 2005索引針對一個表索引優化SP

當我運行以下查詢:

SELECT * 
FROM sys.dm_db_index_physical_stats (DB_ID(N'database_name'), 
            OBJECT_ID(N'dbo.table_name'), 
            NULL, NULL , 'DETAILED');' 

我之前和運行IndexOptimize作業後得到這個作爲結果:

http://cl.ly/image/472J160R1y2n

這裏是我想要運行:

EXECUTE dbo.IndexOptimize 
    @Databases = 'database_name', 
    @Indexes = 'database_name.dbo.table_name', 
    @FragmentationLow = NULL, 
    @FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE', 
    @FragmentationHigh = 'INDEX_REBUILD_ONLINE', 
    @FragmentationLevel1 = 5, 
    @FragmentationLevel2 = 30' 

查詢完成,但它似乎並沒有對錶格的索引產生影響。我錯過了什麼嗎?

+0

典型的解釋是一張小桌子。你能發佈一個顯示頁面數量的屏幕截圖,並且可能添加一些關於表格中行數的信息嗎? 它也可能有助於查看對可能與您的情況非常相似的問題的一些評論,以獲得關於可能導致該問題的一些額外想法: http://beyondrelational.com/測驗/ SQLSERVER /一般/ 2010 /問題/ SQLSERVER,競猜一般-2010-桑卡爾 - 雷迪 - 什麼 - 是最有理由換高指數碎片偶數後重建-的聚集,指數 - sometimes.aspx – SchmitzIT

回答

0

你已經選擇只允許你的索引有> 30%的碎片在線重建。在線重建索引只是企業功能。你在使用SQL Server Enterprise嗎?

+0

這是正確的。我在這個SQL Server上使用標準版。起初有混亂,因爲環境中有其他SQL Server正在使用Enterprise。 – numb3rs1x