2015-02-18 2 views
0

Я хочу настроить ночной скрипт, чтобы перестроить все индексы, размер которых превышает 30%. Не могли бы вы помочь в этом?SQL Server - перестроить индексы за пределами определенного порога фрагментации

Спасибо!

+1

Посмотрите здесь [ 'SQL Server Index и статистика Maintenance'] (https: // ola.hallengren.com/sql-server-index- and-statistics-maintenance.html) –

+0

Я использую http://sqlfool.com/2011/06/index-defrag-script-v4-1/ - кажется, что он хорошо справляется с работой, что у меня нет беспокоиться об этом. – Elliveny

ответ

0

Вы можете использовать Ola Hallengren's index maintenance solution. Если вы хотите только для восстановления индексов, то вы можете настроить dbo.IndexOptimize процедуру таким образом:

CREATE PROCEDURE [dbo].[IndexOptimize] 
@Databases nvarchar(max), 
@FragmentationLow nvarchar(max) = NULL, 
@FragmentationMedium nvarchar(max) = NULL, 
@FragmentationHigh nvarchar(max) = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE', 
@FragmentationLevel1 int = 5, 
@FragmentationLevel2 int = 30, 
... 

Эти значения имеют следующие значения:

  1. При фрагментации выше 30% (параметр @FragmentationLevel2) считается высоким ,
  2. Когда фрагментация индекса высока, SQL Server использует следующие действия (параметр @FragmentationHigh): INDEX_REBUILD_ONLINE, если он доступен (Enterprise Edition), в противном случае он использует INDEX_REBUILD_OFFLINE.

Ссылки:

Documentation: SQL Server Index and Statistics Maintenance

SQLBits presentation: Inside Ola Hallengrens Maintenance Solution

Tweaking the Defaults for Ola Hallengren’s Maintenance Scripts

Automate and Improve Your Database Maintenance Using Ola Hallengren's Free Script - section IndexOptimize Stored Procedure

Смежные вопросы