powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Нужен совет по range partitioning
11 сообщений из 11, страница 1 из 1
Нужен совет по range partitioning
    #32137251
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi!

Есть ряд вопросов, касающихся целесообразности использования секционирования (range, в частности). Итак:

1. Ключ секционирования - дата.
2. Необходимости или возможности выдёргивать исторические данные по одной секции нет.
3. Все секции находятся на одном дисковом массиве.
4. Доступ к данным происходит, в основном, по значению даты в неком диапазоне (ключ секционирования) и значению ряда других полей, при этом выбираются значения практически всех полей. В половине случаев запрос проходит по всем секциям таблицы (дата < sysdate, например).
5. Таблица увешана индексами (9 штук), как локальными, так и глобальными.
6. Таблица интенсивно обновляется, добавляется и удаляется (впрочем, добавляется, в первую очередь).
7. Приложение явным образом с секциями не работает.

Имеет ли смысл использовать секционирование в данном случае? Имеет ли смысл одновременное использование и локальных и глобальных индексов? Сервисные операции (перестройка индексов, перемещение секций) не рассматриваем.
...
Рейтинг: 0 / 0
Нужен совет по range partitioning
    #32137350
Mergen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобще Oracle рекомендует использовать partitioning для всех таблиц размер которых более 2Гб.
В твое случае нет явной необходимости использования partitioning, но как мне кажется, если данных много, стоит воспользоваться данной технологией. Хотябы потому что остается другая половина запросов :)
>В половине случаев запрос проходит по всем секциям таблицы (дата < sysdate, например).

>Приложение явным образом с секциями не работает
Оптимизатор сам выберает нужные партиции по предложению where

>Имеет ли смысл одновременное использование и локальных и глобальных индексов?
Это зависит от запросов
...
Рейтинг: 0 / 0
Нужен совет по range partitioning
    #32137356
acidbaba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi!
Все зависит от количества данных в таблице. Я разбивал таблицу из 20 млн. записей по дате. Каждый день в таблицу спускается ококо 250 тыс. записей. Особых результатов в скорости работы я не добился.
...
Рейтинг: 0 / 0
Нужен совет по range partitioning
    #32137363
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Имеет ли смысл одновременное использование и локальных и глобальных индексов?
Это зависит от запросов


Можешь рассказать чуть подробнее? Смысл в том, что все (вообще) селекты содержат в себе элемент даты, только в одной половине случаев дата ограничена с одной стороны, а в другой - с обеих. Ну и разные другие поля фигурируют (таблица очень широкая).
...
Рейтинг: 0 / 0
Нужен совет по range partitioning
    #32137364
acidbaba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, вот еще. Я строил локальный индекс по дате - индекс весил 1 гб.
...
Рейтинг: 0 / 0
Нужен совет по range partitioning
    #32137377
acidbaba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смысл в том, что все (вообще) селекты содержат в себе элемент даты, только в одной половине случаев дата ограничена с одной стороны, а в другой - с обеих
Если дата ограничена сверху или снизу, то пойдет по секции (PARTITION RANGE ITERATOR) и работать будет быстрее. Но опять же все зависит от того во сколько pratition'ов ты попадешь.
...
Рейтинг: 0 / 0
Нужен совет по range partitioning
    #32137381
Mergen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Смысл в том, что все (вообще) селекты содержат в себе элемент даты, >только в одной половине случаев дата ограничена с одной стороны, а в >другой - с обеих. Ну и разные другие поля фигурируют (таблица очень >широкая).

Все зависит от ограничения выборки данных. Если выборка идет из определенной партиции то локальный подоедет больше. Если в выборке участвуют данные из разных партиций то лутшеи выбрать глобальный. Что касается индексирования остальных полей это зависит от того в каком контексте ты будеш их выбирать, т.е. связан он с и выборкой по дате или имеет самостоятельное представление.
...
Рейтинг: 0 / 0
Нужен совет по range partitioning
    #32137397
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какая разница, связано что-то с датой или нет, если дата - всегда одно из условий запроса? Чего-то я запутался :)

Расскажи, пожалуйста, за счёт чего может быть выигрыш в производительности в моём случае при использовании секционирования? Да, кстати, забыл сказать - таблица практически ни в одном запросе ни с одной другой таблицей не соединяется.
...
Рейтинг: 0 / 0
Нужен совет по range partitioning
    #32137408
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Расскажи, пожалуйста, за счёт чего может быть выигрыш в производительности в моём случае при использовании секционирования? "

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

Выигрыш производительности:это всё равно, что иметь не одну таблицу в 1млн. записей, а две таблицы по 500тыс. запис. Если нужные тебе данные находятся только в одной и ты об этом знаешь, ты сделаешь запрос к той которой надо.
С партициями тоже самое примерно, я так понимаю. Только выбор нужной партиции определяется исходя из условий запроса.
...
Рейтинг: 0 / 0
Нужен совет по range partitioning
    #32137415
Mergen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>А какая разница, связано что-то с датой или нет, если дата - всегда одно из условий запроса? Чего-то я запутался :)

Скажем если дополнительное поле участвует в условии самостоятильно, т.е. нет никаких ограничений на дату
Примерно так where field1=100
а не так where datefield>sysdate-100
and datefield<sysdate
and field1=100
Если в деапазон дат попадает определенная партиция то для field1 следует выбрать локальный индекс. Если в последнем условии вместо and field1=100 будет or field1=100 то делай глобальный. и.т.д.
...
Рейтинг: 0 / 0
Нужен совет по range partitioning
    #32137417
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык выигрыш-то где?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Нужен совет по range partitioning
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]