Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток всем :) Возникла потребность из SQL работать с данными из AW Oracle. К примеру есть измерение TIME. В измерение есть иерархия CALENDAR состоящая из 3 уровней: YEAR, QUARTER, MONTH Возникла проблема написать SQL запрос(использую OLAP_TABLE ) к этому измерению для получения информации по уровням, то-есть получить значения измерения принадлежащие уровню YEAR, или QUARTER, или MONTH Если использовать параметр GID то я могу написать селект типа: SELECT * FROM TABLE(OLAP_TABLE( 'global_aw.global DURATION QUERY', '', '', 'DIMENSION aw_time FROM time WITH' ||' HIERARCHY time_parentrel' ||' GID aw_product_gid FROM time_gid' ||' ATTRIBUTE aw_desc FROm time_long_description' )) where aw_product_gid= 3 Запрос дает мне искомый результат. Но ведь я должен знать что значение time_gid=3 относится к уровню иерархии YEAR. Как определить отношение уровня иерархии к GID не понятно. Может кто сталкивался с подобной проблемой..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2006, 17:59 |
|
||
|
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
|
|||
|---|---|---|---|
|
#18+
[src]SELECT * FROM TABLE(OLAP_TABLE( 'global_aw.global DURATION QUERY', '', 'LIMIT time TO time_levelrel ''YEAR_LEVEL''', 'DIMENSION aw_time FROM time WITH HIERARCHY time_parentrel INHIERARCHY time_inhier ATTRIBUTE aw_desc FROm time_long_description' )) Но здесь есть одна тонкость. Если вы используете limit в параметре olap_command, то он может повлиять на состояние измерения в сесси. Это может произойти в том случае, если ограничиваемое измерение не указано в конструкции INHIERARCHY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2006, 18:23 |
|
||
|
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
|
|||
|---|---|---|---|
|
#18+
Огромное спасибо, наконец понял, где скрывается зависимость между уровнями иерархии и значениями измерения :). Попробовал переписать запрос, избавившись от DML, и получил положительный результат :) : SELECT * FROM TABLE(OLAP_TABLE( 'global_aw.global DURATION QUERY', '', '', ' MEASURE aw_time_levelrel FROM time_levelrel ' ||' DIMENSION aw_time FROM time WITH' ||' ATTRIBUTE aw_time_long_description FROM time_long_description' )) a where aw_time_levelrel= 'YEAR' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2006, 11:53 |
|
||
|
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
|
|||
|---|---|---|---|
|
#18+
А зачем избавляться от dml? Мне кажется, что варант, который предложил я будет работать быстрее. Я порекомендовал бы использовать именно его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2006, 16:38 |
|
||
|
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
|
|||
|---|---|---|---|
|
#18+
GosterА зачем избавляться от dml? Мне кажется, что варант, который предложил я будет работать быстрее. Я порекомендовал бы использовать именно его. Да, согласен, логично предположить что использование DML в этом случае будет быстрее. Пока работаю с тестовыми, небольшими по объему, даными, проверить не могу. Когда доберусь до больших объемов, сделаю замеры :). Просто моя программа делает автоматическую генерацию запросов и без DML нет необходимости использовать иерархии(HIERARCHY и INHIERARCHY), что делает генерацию чуть проще :) Но быстродействие ессно будет решающим фактором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 11:32 |
|
||
|
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
|
|||
|---|---|---|---|
|
#18+
А что тут думать? Если не используется фильтр в DML, то сначала из OLAP тянется весь набор данных, по сути весь куб, а потом в Oracle он отфильтровывается по WHERE. А если используется DML фильтр, то во-первых, в OLAP не будет разворачиваться весь куб, а во-вторых весь куб не будет выбрасываться в Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 12:37 |
|
||
|
Использование OLAP_TABLE: как получить данные для определнного уровня иерархии
|
|||
|---|---|---|---|
|
#18+
MikTarПросто моя программа делает автоматическую генерацию запросов и без DML нет необходимости использовать иерархии(HIERARCHY и INHIERARCHY), что делает генерацию чуть проще :) Но быстродействие ессно будет решающим фактором. Я тоже делаю автоматическую генерацию запросов. Тем не менее, не могу сказать, что с использованием dml что-то усложняется. Даже наоборот :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2006, 10:44 |
|
||
|
|

start [/forum/topic.php?fid=49&msg=33793585&tid=1869985]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 312ms |

| 0 / 0 |
