Разница между выбором из целого раздела или из таблицы с небольшим набором данных? - PullRequest
2 голосов
/ 23 мая 2011

Я новичок в разделах.

Будет ли разница в производительности между

select * from my_partitionedData where date = '20110523' 

и

select * from my_Data where date = '20110523' 

, где my_partitionedData - это таблица, разделенная на date на 1 день, а my_Data - это таблица, содержащая только данные для '20110523', и обе таблицы имеют одинаковую структуру?

Другой вопрос - будет ли разница в производительности при выполнении этих выборок, если все разделы my_partitionedData находятся в в одной файловой группе ? (примечание - выбор всегда на 1 день)

Ответы [ 3 ]

2 голосов
/ 23 мая 2011

Как и все остальное в SQL, вам нужно проверить, чтобы быть уверенным.

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

За кулисами секционированная таблицав основном множество небольших таблиц логически объединены.Если вы разбиваете по дням в своей многораздельной таблице, а ваша нераздельная таблица содержит только один день данных, план выполнения и производительность должны быть практически идентичны.

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

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

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

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

, где my_partitionedData - это таблица, разделенная по дате на 1 день, а my_Data - это таблица, в которой есть только данные для «20110523», и обе таблицы имеют одинаковую структуру?

.меньше времени доступа.

Другой вопрос - какая разница в производительности при выполнении этих выборок, если все разделы my_partitionedData находятся в одной файловой группе?(примечание - выбор всегда на 1 день)

В этом случае время доступа будет больше, несмотря на данные за 1 день.

Разделение требуется для улучшения масштабируемости и управляемостибольших таблиц и таблиц, которые имеют различные шаблоны доступа.

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

...