|
Пятничная задачка: эффективная сортировка с фильтрацией строк
|
|||
---|---|---|---|
#18+
SY Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
SY. Так просто? Блин, но почему? Но спасибо, попробую завтра! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2019, 23:26 |
|
Пятничная задачка: эффективная сортировка с фильтрацией строк
|
|||
---|---|---|---|
#18+
Valergrad Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
сравни проекции ValergradТак просто?ну или так еще: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
а вообще, лучше бы сразу на реальном коде и с реальными планами показывал, а то насколько я понимаю, у тебя там вьюха джойнится и там свои нюансы могут быть с учетом JPPD и ELIMINATE_OBY/NO_ELIMINATE_OBY ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 01:33 |
|
Пятничная задачка: эффективная сортировка с фильтрацией строк
|
|||
---|---|---|---|
#18+
xtenderну или так еще: Да, так лучше. Но если есть возможность создать FBI (может быть проблема при частых insert/update): Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 02:58 |
|
Пятничная задачка: эффективная сортировка с фильтрацией строк
|
|||
---|---|---|---|
#18+
xtenderсравни проекции Так я сравнил. Насколько я понимаю, для того чтобы там не было второй сортировки, ключи сортировки должны совпадать в строчках от SORT и в строчке от WINDOW. Смотрим версию от SY. В SORT ORDER BY сортировка идет по UPPER("T"."TEXT"), а в WINDOW NOSORT STOPKEY по UPPER("V"."TEXT"). Окей, Oracle не дурак и сообразил что V.TEXT и T.TEXT суть одно и то же, поэтому функции от них равны и можно не делать вторую сортировку. Теперь смотрим исходный пример. Там сортировка идет сначала по UPPER("T"."TEXT") а потом по "V"."TEXT". Но ведь Оракл легко может подставить значение "V"."TEXT" которое как раз равно UPPER("T"."TEXT") и понять что сортируется в обоих случаях по одному и тому же. Каким образом он правильно подставил в одном случае, и не может в другом? Он подставляет только колонки, но не функции? xtenderа вообще, лучше бы сразу на реальном коде и с реальными планами показывал, а то насколько я понимаю, у тебя там вьюха джойнится и там свои нюансы могут быть с учетом JPPD и ELIMINATE_OBY/NO_ELIMINATE_OBY Да я бы с удовольствием, думаешь мне самому нравится конструировать эти гипотетические примеры, надеясь что они не упускают ничего важного? Но NDA , security и т.п... На рабочей машине даже sql.ru закрыт - пишу не с нее, поэтому не прикрепляю планы. Думаю, что можно вылететь сразу как выложишь актуальный план с актуальными именами таблиц , не говоря уже о коде. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 14:21 |
|
Пятничная задачка: эффективная сортировка с фильтрацией строк
|
|||
---|---|---|---|
#18+
ValergradТак я сравнил.со своим upper(text) as text ты, видимо, сам себя запутал... CBO не такой умный, чтобы делать замены загодя. Помедитируй над этим: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60.
ну и для полного прояснения попробуй сначала построить план с проекциями и предикатами сам для такого запроса: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
отгадка Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 01:41 |
|
|
start [/forum/topic.php?fid=52&gotonew=1&tid=1882623]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 170ms |
0 / 0 |