Я знаю о опции disable
для alter index
. Но это не только отключает его использование для запросов, но и удаляет данные индекса, поэтому, если вы включите его позже, что потребует перестройки данных с нуля.
Предположим, у меня есть индекс, который, по моему мнению, мало используется. Я проверил счетчики производительности в sys.dm_db_index_usage_stats
и пытался убедиться, что удаление индекса не окажет заметного влияния на производительность приложения. Тем не менее, я могу ошибаться и могу ошибиться. Я бы предпочел просто временно отключить индекс, чтобы оптимизатор запросов не использовал его, но индекс все равно будет сохраняться на диске при записи в таблицу. Через несколько дней я могу сделать второй шаг и полностью удалить индекс. Если окажется, что я ошибся, я могу просто немедленно включить индекс без необходимости перестраивать его с нуля.
Чтобы быть понятным - предположим, что это большой индекс на большой таблице, и я не У меня нет дорогой версии MS SQL, которая позволила бы мне создавать онлайн-индексы. Поэтому я хотел бы избежать долгого ожидания, если и когда я снова включу индекс.
Есть ли какой-нибудь хак, который позволит мне отключить индекс для запросов, чтобы я мог убедиться, что ничего не замедлилось, если это позже будет сброшено? Я использую MS SQL 2016, но мне были бы интересны ответы и для более поздних версий.