|
|
|
Выборка уникальных значений из хронологической таблицы
|
|||
|---|---|---|---|
|
#18+
Я открыл баг (снаружи он не виден) относительно проблемной конструкции. Есть подозрения кое-какие и надеюсь что они верны и вскорости наступит всеобщее счастье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2005, 04:07 |
|
||
|
Выборка уникальных значений из хронологической таблицы
|
|||
|---|---|---|---|
|
#18+
Владимир БегунЯ открыл баг (снаружи он не виден) относительно проблемной конструкции. Есть подозрения кое-какие и надеюсь что они верны и вскорости наступит всеобщее счастье. Столкнулся с такой же проблемой на этой неделе на 10.2.0.4. Счастье не наступило. Радует что баг так и остался невидим снаружи :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2010, 19:49 |
|
||
|
Выборка уникальных значений из хронологической таблицы
|
|||
|---|---|---|---|
|
#18+
Квасной К сожалению, Oracle версии 9i не позволяет передавать в FIELD SUBQUERY поля из внешнего запроса, если глубина вложения FIELD SUBQUERY больше 1. То есть такой, казалось бы, естественный запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. приведёт к ошибке ORA-00904: недопустимый идентификатор . Inline view не может быть корелированным, и не только в 9-ке, а и в более поздних версиях. Правда, в 10.2.0.1 это разрешалось, что похоже на баг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2010, 21:57 |
|
||
|
Выборка уникальных значений из хронологической таблицы
|
|||
|---|---|---|---|
|
#18+
Inline viewКвасной К сожалению, Oracle версии 9i не позволяет передавать в FIELD SUBQUERY поля из внешнего запроса, если глубина вложения FIELD SUBQUERY больше 1. То есть такой, казалось бы, естественный запрос: Код: plaintext приведёт к ошибке ORA-00904: недопустимый идентификатор . Inline view не может быть корелированным, и не только в 9-ке, а и в более поздних версиях. Правда, в 10.2.0.1 это разрешалось, что похоже на баг. Констатация известных фактов. (демонстрация потенциальной конструкции [не работающей в Oracle] которая могла бы решить проблему) А проблема в следующем: КваснойНу-с, вот обещанные трейсы. В таблице transactions около 1 600 000 строк; В таблице rates около 25 000 строк; Селективность индекса ux_rates_currency_date по полю currency — около 8% , т. е. около 2 000 строк по каждой валюте. В целях ускорения запроса выборка велась по первым 9 999 строкам из transactions . Результаты агрегировались и по ним считалась сумма. Мой запрос работал 0,40 сек. Запрос, предложенный тов. "Splain", работал 10,64 сек. Запрос тов. "Владимира Бегуна" работал 34,53 сек. Запрос тов. "Владимира Бегуна" с хинтом работал 34,04 сек. Общую сумму по всей таблице transactions ( 1 600 000 строк) мой запрос считает около 25 сек. НО САМЫЙ БЫСТРЫЙ ВАРИАНТ Код: plaintext ТОЖЕ С БАГОМ - без order by НЕТ гарантии что возьмётся нужная строка. ИТОГО: нормального решения для такого запроса нет до сих пор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2010, 10:45 |
|
||
|
Выборка уникальных значений из хронологической таблицы
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2010, 22:39 |
|
||
|
Выборка уникальных значений из хронологической таблицы
|
|||
|---|---|---|---|
|
#18+
Какова скорость варианта в пред. посте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 22:26 |
|
||
|
Выборка уникальных значений из хронологической таблицы
|
|||
|---|---|---|---|
|
#18+
Кстати, в случае если использовать функцию и в ней запрос с order by, то Oracle делает RANGE SCAN DESCENDING: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. и явно запретить использование индекса: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. В первом варианте, сортировка происходит только с участием индекса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2010, 00:16 |
|
||
|
Выборка уникальных значений из хронологической таблицы
|
|||
|---|---|---|---|
|
#18+
У вас дырко в безопансоти? ХАКККККККККККККККККККК ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2011, 16:53 |
|
||
|
Выборка уникальных значений из хронологической таблицы
|
|||
|---|---|---|---|
|
#18+
Столкнулся с такой же проблемой. Пробуем к хинту index добавить first_rows(1) /*+ INDEX_DESC (r ux_rate_currency_date) FIRST_ROWS(1) */ как ни странно, результат выборки у меня поменялся (версия oracle 11.2.0.4.0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2017, 15:47 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=36432531&tid=1886023]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
173ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 489ms |

| 0 / 0 |
