Как хранить разделы с последними данными на одном диске и историческими данными на другом? - PullRequest
0 голосов
/ 21 мая 2011

Я собираюсь разделить мои данные по дате.

Можно ли отделять последние данные от исторических данных ежедневно?

т.е. Мне нужно скользящее окно даты - скажем, последние 30 дней данных на одном физическом диске и остальные (старше, чем это) на другом физическом диске.

Как мне его свернуть, учитывая, что данные приходят один раз утром?

Ответы [ 2 ]

1 голос
/ 22 мая 2011

Создание разделов на двух дисках не решит проблему с производительностью из-за дополнительных операций ввода-вывода, которые будут задействованы при перемещении данных между дисками, удалении данных из раздела, обновлении индексов и трудозатратах, связанных с проверкой всех данных.

Ваши данные сгруппированы по столбцу даты?Вы утверждаете, что 80% запросов выполняются в течение последних двух дней, поэтому, если ваши данные были сгруппированы по дате, то ввод-вывод по сути будет последовательным чтением.

Индексы, отфильтрованные или разделенные, будут указывать только на кластерили строки кучи, которые содержат данные и приведут к случайному вводу-выводу, если данные не находятся в последовательности дат.Упорядоченный и отфильтрованный по дате индекс, который включает все столбцы таблицы, будет хорошим приростом производительности, если вы не можете кластеризовать таблицу по дате.

Если вы не можете вносить изменения в структуру таблицы, и таблица не кластеризованана дату я предлагаю:

  • Переместить все данные таблицы на один набор дисков.

    Использовать другой набор дисков только в качестве индекса

  • Создать отфильтрованный индекс, охватывающий диапазон дат, равный трем дням.Включить все столбцы таблицы
  • Создать отфильтрованный индекс, который охватывает диапазон дат следующих трех дней.Включить все столбцы таблицы
  • Создать отфильтрованный индекс, который охватывает диапазон дат следующих трех дней.Включите все столбцы таблицы
  • Через шесть дней после создания первого индекса, отбросьте этот индекс и создайте два отфильтрованных индекса, охватывающих диапазон дат, равный трем дням.Включите все столбцы таблицы
  • Повторите удаление и создание индексов.
  • Автоматизируйте этот процесс с помощью агента SQL

    Отслеживайте создание индекса с помощью предупреждений

Единственный способ доказать, приводит ли какое-либо изменение к улучшению, состоит в том, чтобы иметь эталон до и после.

0 голосов
/ 21 мая 2011

Абсолютно возможно, когда вы определяете схему раздела, вы указываете, к какой группе файлов относится каждый раздел в этой схеме.

Проблема возникнет, когда вы свернете данные и вам потребуется перенести весь раздел с одного диска на другой - эту операцию придется выполнять осторожно, и в зависимости от количества данных может потребоваться некоторое время.

Учитывая, что упоминаются только 2 физических диска, что является причиной необходимости такого разделения?

...