powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как заставить выбирать только из определенной партиции?
25 сообщений из 32, страница 1 из 2
Как заставить выбирать только из определенной партиции?
    #32501853
Animal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Существует таблица разбитая на партиции по годам
как заставить Оракл выбирать только из конкретной партиции не указывая в селекте явно период?

Oracle 9.2.0.4
Win2000 Server
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32501864
Alexander Dubrovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не из головы :)
Срисовал пример.

SELECT * FROM sales_detail_data partition (sales_q1_99);
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32501884
Animal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все пора в отпуск
ну я ступил.

СПАСИБО огромное
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32501893
Animal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополнительный вопрос

можно ли как-нибудь создать партицию в которую бы входили данные только за текущий месяц?
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32502015
raven13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем ранжирование по дате не устаривает?
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32502033
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно ли указать несколько определенных партиций?
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32502060
Mergen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что мешает организовать партицирование по месяцам?
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32502071
Alexander Dubrovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо то, что они сами не создаются автоматически там где нужно и когда нужно :)
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32502083
Фотография denm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА можно ли указать несколько определенных партиций?

Добавьте в запрос условие на ключ секционирования.

В доке ( 8.1.7 ) написано:

FROM Clause
query_table_expression_clause

The FROM clause lets you specify the table, view, materialized view, or partition from which data is selected, or a subquery that specifies the objects from which data is selected.

PARTITION (partition), SUBPARTITION (subpartition)

Specify the partition or subpartition from which you want to retrieve data. The partition parameter may be the name of the partition within table from which to retrieve data or a more complicated predicate restricting retrieval to just one partition of the table .

Кто-нибудь знает, что это за предикат в выражении PARTITION(...)?
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32502149
Animal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА что мешает организовать партицирование по месяцам?

Создавать партиции по месяцам как-то не очень хоЦЦа

На самом деле необходимы данные именно по текущему месяцу и остальные по годам.


Хотелось бы создать что-то типа
PARTITION LESS2004 VALUES LESS THAN (' 2002-01-01')

PARTITION LESS2004 VALUES LESS THAN (' 2003-01-01')

PARTITION LESS2004 VALUES LESS THAN (' 2004-01-01')

PARTITION LESS2004 VALUES LESS THAN (Last_Day(ADD_Month(sysdate,-1))+1)

PARTITION CUR_MON VALUES LESS THAN (MAXVALUE)
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32502307
Mergen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как вы собираетесь разруливать все это хозяйство? когда месяц закончится, что дальше? Можно создать партиции и сабпартиции.
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32502413
Alexander Dubrovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может это решить вообще в корне по другому?

Держать текущий месяц вообще в другой таблице, а сваливать по расписанию в партиционированный архив в конце?

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

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

- создайте партицию на следующий месяц
- первого числа каждого месяца соединяйте все партиции от начала года до предыдущего месяца и добавляйте одну на следующий (легко делается скриптом из крона или джоба).
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32502447
Alexander Dubrovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как система перенесет объединение партиций?
Ее не сплющит?
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32502479
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, не стоит вообще завязываться на физическую структуру? Я бы за такие вещи в приложении известным образом кишки выпустилэ. Partition pruning не работает, что ли?
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32503624
Animal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИначе прийдется вобще каждый месяц создавать новую партицию.
Или я чего-то не понимаю?

В том то и дело что хотелось бы завязаться на SYSDATE

PARTITION LESS2004 VALUES LESS THAN (Last_Day(ADD_Month(sysdate ,-1))+1)

авторКстати, какова цель партиционирования в вашем случае?

Табель по всему предприятию. (> 6000 чел.)

авторДержать текущий месяц вообще в другой таблице, а сваливать по расписанию в партиционированный архив в конце?

Такой вариант тоже рассматривался. Но система разрабатывалась не нами, и прийдется очень много переписывать функционала.



авторМожет, не стоит вообще завязываться на физическую структуру? Я бы за такие вещи в приложении известным образом кишки выпустилэ. Partition pruning не работает, что ли?

Что вы имели ввиду?
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32503862
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имел в виду грязный длинный тупой кухонный нож, вонзаемый в пузо автора приложения за такие вещи :)

Зачем вводить в приложение логику непосредственной работы с партициями, если оптимизатор сам выберет нужные партиции, если в запросе есть дата и колонка с датой является (или входит первой в) ключом секционирования?
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32503866
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс. Насчёт "входит первой в" я погорячился. Входить может в любом месте, но все остальные колонки ключа также должны присутствовать в запросе.
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32508295
Animal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Tiger

Ясно.


А как насчет завизаться на системную дату?
Как создать партицию текущего месяца?
Ну неохота создавать партиции на каждый месяч.
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32508362
Зл0й
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так товарищ Скотт Тайгер, ножик уберите пожалуйста. Без фанатизма пожалуйста. Я как DBA вас конечно понимаю, даже сочувствую. Однако реальная система - это всегда компромисс.

Вам никогда не встречались execution plans при которых оракл сканирует все партиции, а не только ту где лежат искомые данные? Мне встречались. Таблица разбита по месяцам, ищу данные за янарь 2003 г. Оракл, зараза, сканирует с 1999 по 2004. А таблицы где в январской партиции валяются февральские данные вы не встречали? Я опять-таки встречал, так что Оракл не зря сканирует всю таблицу.

Так что, указывать партицию хоть и не элегантно, но приемлемо. Точно так же как диктовать оптимизатору план хинтами. Тоже завязка кода на "физическую реализацию" а именно -на имя индекса. А что делать, кому сейчас легко, при объемах баз измеряемых двузначными цифрами в терабайтах?
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32508487
Alexander Dubrovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин.

6000 счетов для оракла - это много???

Максимальное количество записей в таблице?
Железо: Количество дисков? Кол-во процессоров? Память?
Наблюдаются проблемы производительности? Какие?

Потом дальше будем разговаривать.

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

Спрашивается, а чем вызвано такое стремление к партиционированию вообще??? Не хватает места на одном носителе под таблспейс с этой таблицей????

Глупо это.

Нужно просто протрэйсить проблемные процедуры, оттюнить запросы тормозные и создать индексы грамотно и еще раз оттюнить :)

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

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

Но начать надо с того: "а чем собственно я сейчас недоволен?"

В противном случае с партициями родишь себе такой гиморой...

И вообще есть такая истина: тюнингом памяти, дисков, апгрэйдом железа можно добиться прироста производительности в 10-50%, а созданием необходимого индекса, удалением ненужного, оптимизацией кода можно добиться 100-1000% прироста производительности.

Так что для начала определитесь с целями ИМХО.
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32508507
Alexander Dubrovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В догонку.

Ну ладно, ты по крону в 00:00 1 числа месяца пускаешь sqlplus со скриптом который берет и создает новую партицию, отталкиваясь от текущей даты.
НО!

Кто будет эти партиции распределять по носителям (то бишь по таблспейсам) именно так, как это выгодно в плане производительности?

Или партиции все лежат на одном диске и нужны только для ограничения диапазона сканирования?
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32508550
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самая веселуха начинается, когда впопыхах кто-то добавит ещё одну партицию и весь супер-пупер алгоритм "я умнее CBO" летит к чёрту, а потом сиди и лови глюки. Оно, конечно, понятно насчёт "щетильнее надо", но такое вполне может быть.
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32508711
Animal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то СКОТТ
авторСамая веселуха начинается, когда впопыхах кто-то добавит ещё одну партицию и весь супер-пупер алгоритм "я умнее CBO" летит к чёрту, а потом сиди и лови глюки. Оно, конечно, понятно насчёт "щетильнее надо", но такое вполне может быть.

Согласен.

то Alexander Dubrovsky

автор6000 счетов для оракла - это много???

Вы про какие счета?


авторМаксимальное количество записей в таблице?
6000(чел)*365(дней)*3(года)=6570000 (это пока)

авторЖелезо: Количество дисков? Кол-во процессоров? Память?
Вот с этим худо.
5x72 дисков RAID5
4xXeon 900MHz
4GB

авторНаблюдаются проблемы производительности? Какие?
Что значит какие, естественно что долго выполняются запросы.


авторНужно просто протрэйсить проблемные процедуры, оттюнить запросы тормозные и создать индексы грамотно и еще раз оттюнить :)
Пробуем`с.

авторЕсли сервер по умолчанию настроен, то к бабке не ходи - область сортировки маленькая, буферкэш маленький, логбуфер наверняка маленький.
db_block_size=16384
db_file_multiblock_read_count=16
log_buffer = 3145728
db_block_buffers = 57600

sort_area_size =5242880
sort_area_retained_size = 1048576


авторВ противном случае с партициями родишь себе такой гиморой...
Например плиз.

авторИ вообще есть такая истина: тюнингом памяти, дисков, апгрэйдом железа можно добиться прироста производительности в 10-50%, а созданием необходимого индекса, удалением ненужного, оптимизацией кода можно добиться 100-1000% прироста производительности.
Абсолютно согласен
...
Рейтинг: 0 / 0
Как заставить выбирать только из определенной партиции?
    #32508750
Alexander Dubrovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
6000(чел)*365(дней)*3(года)=6570000 (это пока)

автор
Железо: Количество дисков? Кол-во процессоров? Память?

Вот с этим худо.
5x72 дисков RAID5
4xXeon 900MHz
4GB

автор
Наблюдаются проблемы производительности? Какие?

Что значит какие, естественно что долго выполняются запросы.




Хм.
6 млн записей - это в общем то тьфу.
Процов выше крыши, памяти тоже.
Вроде и настройки памяти в порядке... на первый взгляд конечно :)

Тока вот где-то я читал, что после 1Мб сорт арии наступает насыщение.
Может я чего-то не того - поправьте.
Но это не суть.

Насчет RAID тут ща начнется :)
А зачем все в один райд? К чему партиции? Параллелизма никакого не получится путем.
Если бы хоть датафайлы на разных носителях....
Я должно быть опять не в тему :)

RAID5 вообще так себе решение - медленно работает.
Хочешь быстро - ставь страйп, страйп+миррор или вообще по отдельным носителям раскладывай датафайлы.

Ну да это видимо поздно делать уже...

Так может просто еще и запросы такие?

А насчет гимороя - просто путанница вот чего.
Чем больше всего, тем труднее управляется.
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как заставить выбирать только из определенной партиции?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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