Индексы статистика может обновляться автоматически. Я не верю, что сами индексы будут перестраиваться автоматически при необходимости (хотя может быть какая-то административная функция, позволяющая это делать).
Индексы, связанные с таблицами, которые получают много изменений (новые строки, обновленные строки и удаленные строки), могут иметь свои индексы, которые становятся фрагментированными и менее эффективными. Перестройка индекса с последующим «перепаковыванием» индекса в непрерывном разделе пространства хранения, немного похожая на то, как дефрагментация файловой системы ускоряет доступ к файлу ...
Кроме того, у индексов (на нескольких СУБД) есть параметр FILL_FACTOR , который определяет, сколько дополнительного пространства должно быть оставлено в каждом узле для роста. Например, если вы ожидаете, что данная таблица вырастет на 20% в следующем году, объявив коэффициент заполнения около 80%, степень фрагментации индекса должна быть минимальной в течение первого года (могут быть некоторые, если эти 20% роста распределяются неравномерно, ..)
В SQL Server можно запрашивать свойства индекса, которые указывают на его уровень фрагментации, и, следовательно, на возможную необходимость его обслуживания. Это можно сделать с помощью интерактивной консоли управления. Также возможно сделать это программно , с помощью sys.dm_db_index_physical_stats в MSSQL 2005 и более поздних версиях (может быть, даже в более старых версиях?)