|
|
|
Выборка в SQL из партиции по параметру
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть табличка, которая секционирована динамически с интервалом в год Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. соответственно, названия партиций автоматически создаются Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Предполагалось, что будет вьюшка, которая бы возвращала данные за текущий год, т.к. тягать 10 млн. записей за все года не резон. Следовательно, что-то типа такого: Код: plsql 1. Однако, динамический параметр наотрез не хочет работать - выпадает ошибка "ORA-14108: Неверный синтаксис имени секционированной таблицы" А статичный, типа SELECT * FROM TABLE partition for (TO_DATE('01-01-2017','DD-MM-YYYY')) работает на ура. В общем, как я понял, это не баг а фича, и действительно в отличие от WHERE, сюда надо передавать статический параметр. Все здорово. Но как все же решить основное назначение для меня секционирования - возвращать данные за нужный период. Вариант переписывания вьюшек каждый год - бред. Пользоваться только функциями?? Что можно сделать в этом случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2017, 10:14 |
|
||
|
Выборка в SQL из партиции по параметру
|
|||
|---|---|---|---|
|
#18+
partition for суть partition_extension_clause, см. синтаксические диаграммы. Видите там слово expression в параметрах? Нет? Это и есть ответ на вопрос о "динамике". Но Ваша основная ошибка иной природы. partitioning - это способ физической организации данных. НЕ логической. Потому view следует сформулировать так: Код: plsql 1. 2. С одной стороны, это включит механизмы partition pruning, с другой - результат не будет зависеть от административных действий с разделами (split/merge) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2017, 10:31 |
|
||
|
Выборка в SQL из партиции по параметру
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, Сейчас так и реализовано, просто я не был уверен, что при таком запросе будет реализован смысл партиций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2017, 12:06 |
|
||
|
Выборка в SQL из партиции по параметру
|
|||
|---|---|---|---|
|
#18+
stells2Сейчас так и реализовано, просто я не был уверен, что при таком запросе будет реализован смысл партиций.А в чём, по-вашему, заключается смысл партиций? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2017, 16:24 |
|
||
|
Выборка в SQL из партиции по параметру
|
|||
|---|---|---|---|
|
#18+
Bobby Z., организованное на физическом уровне разделенное по группам хранение данных. Просто, считал что движку явно надо как то указывать откуда брать и куда смотреть, что бы выгоду от такой организации хранения получить, все же, такая организация имеет дополнительные накладные расходы. По планам запросов вижу что берет из последней партиции. Если он такой умный, то хорошо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 06:18 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39567587&tid=1884752]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 464ms |

| 0 / 0 |
