|
|
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
Существует таблица разбитая на партиции по годам как заставить Оракл выбирать только из конкретной партиции не указывая в селекте явно период? Oracle 9.2.0.4 Win2000 Server ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 09:20 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
Это не из головы :) Срисовал пример. SELECT * FROM sales_detail_data partition (sales_q1_99); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 09:24 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
все пора в отпуск ну я ступил. СПАСИБО огромное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 09:33 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
Дополнительный вопрос можно ли как-нибудь создать партицию в которую бы входили данные только за текущий месяц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 09:35 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
А чем ранжирование по дате не устаривает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 10:35 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
А можно ли указать несколько определенных партиций? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 10:43 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
А что мешает организовать партицирование по месяцам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 10:53 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
Видимо то, что они сами не создаются автоматически там где нужно и когда нужно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 11:00 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
авторА можно ли указать несколько определенных партиций? Добавьте в запрос условие на ключ секционирования. В доке ( 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(...)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 11:03 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
авторА что мешает организовать партицирование по месяцам? Создавать партиции по месяцам как-то не очень хоЦЦа На самом деле необходимы данные именно по текущему месяцу и остальные по годам. Хотелось бы создать что-то типа 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) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 11:23 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
а как вы собираетесь разруливать все это хозяйство? когда месяц закончится, что дальше? Можно создать партиции и сабпартиции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 12:12 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
А может это решить вообще в корне по другому? Держать текущий месяц вообще в другой таблице, а сваливать по расписанию в партиционированный архив в конце? Иначе прийдется вобще каждый месяц создавать новую партицию. Или я чего-то не понимаю? Кстати, какова цель партиционирования в вашем случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 12:45 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
Например, можно решить задачу так: - создайте партицию на следующий месяц - первого числа каждого месяца соединяйте все партиции от начала года до предыдущего месяца и добавляйте одну на следующий (легко делается скриптом из крона или джоба). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 12:53 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
А как система перенесет объединение партиций? Ее не сплющит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 12:56 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
Может, не стоит вообще завязываться на физическую структуру? Я бы за такие вещи в приложении известным образом кишки выпустилэ. Partition pruning не работает, что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 13:04 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
авторИначе прийдется вобще каждый месяц создавать новую партицию. Или я чего-то не понимаю? В том то и дело что хотелось бы завязаться на SYSDATE PARTITION LESS2004 VALUES LESS THAN (Last_Day(ADD_Month(sysdate ,-1))+1) авторКстати, какова цель партиционирования в вашем случае? Табель по всему предприятию. (> 6000 чел.) авторДержать текущий месяц вообще в другой таблице, а сваливать по расписанию в партиционированный архив в конце? Такой вариант тоже рассматривался. Но система разрабатывалась не нами, и прийдется очень много переписывать функционала. авторМожет, не стоит вообще завязываться на физическую структуру? Я бы за такие вещи в приложении известным образом кишки выпустилэ. Partition pruning не работает, что ли? Что вы имели ввиду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2004, 03:38 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
Имел в виду грязный длинный тупой кухонный нож, вонзаемый в пузо автора приложения за такие вещи :) Зачем вводить в приложение логику непосредственной работы с партициями, если оптимизатор сам выберет нужные партиции, если в запросе есть дата и колонка с датой является (или входит первой в) ключом секционирования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2004, 10:16 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
Упс. Насчёт "входит первой в" я погорячился. Входить может в любом месте, но все остальные колонки ключа также должны присутствовать в запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2004, 10:18 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
to Tiger Ясно. А как насчет завизаться на системную дату? Как создать партицию текущего месяца? Ну неохота создавать партиции на каждый месяч. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 03:12 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
Так товарищ Скотт Тайгер, ножик уберите пожалуйста. Без фанатизма пожалуйста. Я как DBA вас конечно понимаю, даже сочувствую. Однако реальная система - это всегда компромисс. Вам никогда не встречались execution plans при которых оракл сканирует все партиции, а не только ту где лежат искомые данные? Мне встречались. Таблица разбита по месяцам, ищу данные за янарь 2003 г. Оракл, зараза, сканирует с 1999 по 2004. А таблицы где в январской партиции валяются февральские данные вы не встречали? Я опять-таки встречал, так что Оракл не зря сканирует всю таблицу. Так что, указывать партицию хоть и не элегантно, но приемлемо. Точно так же как диктовать оптимизатору план хинтами. Тоже завязка кода на "физическую реализацию" а именно -на имя индекса. А что делать, кому сейчас легко, при объемах баз измеряемых двузначными цифрами в терабайтах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 07:32 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
Блин. 6000 счетов для оракла - это много??? Максимальное количество записей в таблице? Железо: Количество дисков? Кол-во процессоров? Память? Наблюдаются проблемы производительности? Какие? Потом дальше будем разговаривать. Я вообще возможно некопенгаген в этом вопросе, но я видел своими глазами, когда партиционированная таблица не только не давала выигрыша, а наоборот. Спрашивается, а чем вызвано такое стремление к партиционированию вообще??? Не хватает места на одном носителе под таблспейс с этой таблицей???? Глупо это. Нужно просто протрэйсить проблемные процедуры, оттюнить запросы тормозные и создать индексы грамотно и еще раз оттюнить :) Потом уже можно по книжкам покопаться - нарыть запросиков, которые выявляют узкие места системы. Если сервер по умолчанию настроен, то к бабке не ходи - область сортировки маленькая, буферкэш маленький, логбуфер наверняка маленький. Но начать надо с того: "а чем собственно я сейчас недоволен?" В противном случае с партициями родишь себе такой гиморой... И вообще есть такая истина: тюнингом памяти, дисков, апгрэйдом железа можно добиться прироста производительности в 10-50%, а созданием необходимого индекса, удалением ненужного, оптимизацией кода можно добиться 100-1000% прироста производительности. Так что для начала определитесь с целями ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 09:51 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
В догонку. Ну ладно, ты по крону в 00:00 1 числа месяца пускаешь sqlplus со скриптом который берет и создает новую партицию, отталкиваясь от текущей даты. НО! Кто будет эти партиции распределять по носителям (то бишь по таблспейсам) именно так, как это выгодно в плане производительности? Или партиции все лежат на одном диске и нужны только для ограничения диапазона сканирования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 10:01 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
Самая веселуха начинается, когда впопыхах кто-то добавит ещё одну партицию и весь супер-пупер алгоритм "я умнее CBO" летит к чёрту, а потом сиди и лови глюки. Оно, конечно, понятно насчёт "щетильнее надо", но такое вполне может быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 10:26 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
то СКОТТ авторСамая веселуха начинается, когда впопыхах кто-то добавит ещё одну партицию и весь супер-пупер алгоритм "я умнее 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% прироста производительности. Абсолютно согласен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 11:29 |
|
||
|
Как заставить выбирать только из определенной партиции?
|
|||
|---|---|---|---|
|
#18+
автор 6000(чел)*365(дней)*3(года)=6570000 (это пока) автор Железо: Количество дисков? Кол-во процессоров? Память? Вот с этим худо. 5x72 дисков RAID5 4xXeon 900MHz 4GB автор Наблюдаются проблемы производительности? Какие? Что значит какие, естественно что долго выполняются запросы. Хм. 6 млн записей - это в общем то тьфу. Процов выше крыши, памяти тоже. Вроде и настройки памяти в порядке... на первый взгляд конечно :) Тока вот где-то я читал, что после 1Мб сорт арии наступает насыщение. Может я чего-то не того - поправьте. Но это не суть. Насчет RAID тут ща начнется :) А зачем все в один райд? К чему партиции? Параллелизма никакого не получится путем. Если бы хоть датафайлы на разных носителях.... Я должно быть опять не в тему :) RAID5 вообще так себе решение - медленно работает. Хочешь быстро - ставь страйп, страйп+миррор или вообще по отдельным носителям раскладывай датафайлы. Ну да это видимо поздно делать уже... Так может просто еще и запросы такие? А насчет гимороя - просто путанница вот чего. Чем больше всего, тем труднее управляется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 11:49 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=167&tid=1886084]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 208ms |
| total: | 353ms |

| 0 / 0 |
