Я хочу настроить ночной скрипт, чтобы перестроить все индексы, размер которых превышает 30%. Не могли бы вы помочь в этом?SQL Server - перестроить индексы за пределами определенного порога фрагментации
Спасибо!
Я хочу настроить ночной скрипт, чтобы перестроить все индексы, размер которых превышает 30%. Не могли бы вы помочь в этом?SQL Server - перестроить индексы за пределами определенного порога фрагментации
Спасибо!
Вы можете использовать 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,
...
Эти значения имеют следующие значения:
@FragmentationLevel2
) считается высоким ,@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
Посмотрите здесь [ 'SQL Server Index и статистика Maintenance'] (https: // ola.hallengren.com/sql-server-index- and-statistics-maintenance.html) –
Я использую http://sqlfool.com/2011/06/index-defrag-script-v4-1/ - кажется, что он хорошо справляется с работой, что у меня нет беспокоиться об этом. – Elliveny