Важно понимать, что когда вы уменьшаете базу данных, страницы переупорядочиваются. Страницы в конце файла данных перемещаются в открытое пространство в начале файла, без учета фрагментации.
Кластерный индекс определяет физический порядок данных в таблице. Итак, представьте, что вы только что создали кластерный индекс, который бы физически переупорядочил данные в этой таблице. Что ж, тогда, когда вы выполните команду сжатия, данные, которые были аккуратно упорядочены во время создания кластерного индекса, теперь могут оказаться не в порядке, что повлияет на способность SQL эффективно использовать их.
Таким образом, каждый раз, когда вы выполняете операцию сжатия, вы можете повлиять на производительность для всех последующих запросов. Однако, если вы повторно выполняете кластеризованные индексы / первичные ключи после сжатия, вы помогаете дефрагментировать большую часть фрагментации, которую вы, возможно, представили во время операции сжатия. Если производительность критична, но вы также вынуждены регулярно сокращаться, то в идеальном мире вы захотите пересматривать индексы после каждой операции сжатия.