|
|
|
запрос с over(): что задает сортировку?
|
|||
|---|---|---|---|
|
#18+
Рассматриваю запрос Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Не могу понять, что в этом запросе задает сортировку по DEPT. PARTITION BY dept ведь означает только групировку, или также неявную сортировку? Физически Department'ы не следую в отсортированном порядке. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 11:26 |
|
||
|
запрос с over(): что задает сортировку?
|
|||
|---|---|---|---|
|
#18+
А при группировке и сортируется. Попробуй select dept from emp2 group by dept; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 11:53 |
|
||
|
запрос с over(): что задает сортировку?
|
|||
|---|---|---|---|
|
#18+
Интересно! Я конечно стандарты SQL далеко не наизусть знаю. До сих пор считала что group by имеет смысл только при агрегатных функциях, или это просто особенность оркала? Проверила Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. и Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Правильно ли я понимаю что для осуществления группировки и оределения уникальных значений, Оракл всегда использует сортировку? PS Скорость сравнить не удалось (Elapsed: 00:00:00.00). Можно ли сказать по Execution Plan какой запрос будет быстрее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 12:08 |
|
||
|
запрос с over(): что задает сортировку?
|
|||
|---|---|---|---|
|
#18+
Думаю ответ лежит в области программирования -- группировка и поиск уникальных значений требуют сортировки. Либо явной, либо неявной (например использовать уже готовую сортировку в индексе). Другое дело, что упорядоченность при этой вынужденной сортировке может отличаться от так называемой "интуитивной". Metalink Note Id: No114507.1 Technical Tips: Avoiding Sort Examining the Optimizer strategy is one way to see whether a sort is being performed. However, there are are some standard operators that will often cause a sort to occur. You should keep these in mind when tuning queries and tuning sort for Oracle Rdb. As described in this article, DISTINCT will often cause sort to be used so that rows with the same values can be eliminated. GROUP BY and ORDER BY will order the set of data using sort if no suitable index is available. This is always true when these clauses use columns from different tables or when they contain expressions. The UNION operator, by default, returns only the distinct rows from the merged tables. If you know that the results are already unique, or if you can tolerate the duplicate rows, use the UNION ALL operator. Joins between tables with no suitable sorted index may require a sort so that the matching rows can be found and returned for the query. The Rdb optimizer Optimizer will attempt to eliminate unnecessary sorts if possible. For instance, an exaggerated query that over-specifies the ordering will still only perform one sort operation. В принципе сие http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96533/opt_ops.htm тоже подтверждает оное: сортировка будет, но не гарантируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2003, 23:01 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32162838&tid=1990481]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
161ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
2ms |
| others: | 211ms |
| total: | 457ms |

| 0 / 0 |
