Создание разделов на двух дисках не решит проблему с производительностью из-за дополнительных операций ввода-вывода, которые будут задействованы при перемещении данных между дисками, удалении данных из раздела, обновлении индексов и трудозатратах, связанных с проверкой всех данных.
Ваши данные сгруппированы по столбцу даты?Вы утверждаете, что 80% запросов выполняются в течение последних двух дней, поэтому, если ваши данные были сгруппированы по дате, то ввод-вывод по сути будет последовательным чтением.
Индексы, отфильтрованные или разделенные, будут указывать только на кластерили строки кучи, которые содержат данные и приведут к случайному вводу-выводу, если данные не находятся в последовательности дат.Упорядоченный и отфильтрованный по дате индекс, который включает все столбцы таблицы, будет хорошим приростом производительности, если вы не можете кластеризовать таблицу по дате.
Если вы не можете вносить изменения в структуру таблицы, и таблица не кластеризованана дату я предлагаю:
Переместить все данные таблицы на один набор дисков.
Использовать другой набор дисков только в качестве индекса
- Создать отфильтрованный индекс, охватывающий диапазон дат, равный трем дням.Включить все столбцы таблицы
- Создать отфильтрованный индекс, который охватывает диапазон дат следующих трех дней.Включить все столбцы таблицы
- Создать отфильтрованный индекс, который охватывает диапазон дат следующих трех дней.Включите все столбцы таблицы
- Через шесть дней после создания первого индекса, отбросьте этот индекс и создайте два отфильтрованных индекса, охватывающих диапазон дат, равный трем дням.Включите все столбцы таблицы
- Повторите удаление и создание индексов.
Автоматизируйте этот процесс с помощью агента SQL
Отслеживайте создание индекса с помощью предупреждений
Единственный способ доказать, приводит ли какое-либо изменение к улучшению, состоит в том, чтобы иметь эталон до и после.