|
|
|
ROWNUM
|
|||
|---|---|---|---|
|
#18+
Есть два запроса: SELECT DISTINCT o.OrderKey FROM WH1.ORDERS o, WH1.RECEIPT r WHERE o.RequestedShipDate < v_arch_date and o.editdate<v_arch_date --AND ROWNUM < 1000 AND o.Type = '8' AND o.OrderKey = r.Susr2 AND r.Type = '8' AND NOT EXISTS(SELECT 1 FROM WH1.LOTXLOCXID A, WH1.Lotattribute B WHERE a.lot = b.lot AND a.qty <> 0 AND b.lottable02 = r.ReceiptKey); и SELECT DISTINCT o.OrderKey FROM WH1.ORDERS o, WH1.RECEIPT r WHERE o.RequestedShipDate < v_arch_date and o.editdate<v_arch_date AND ROWNUM < 1000 AND o.Type = '8' AND o.OrderKey = r.Susr2 AND r.Type = '8' AND NOT EXISTS(SELECT 1 FROM WH1.LOTXLOCXID A, WH1.Lotattribute B WHERE a.lot = b.lot AND a.qty <> 0 AND b.lottable02 = r.ReceiptKey); Первый в зависимости от даты v_arch_date выводит 10-12 тыс записей, второй 970-999. Есть объяснение почему ROWNUM не дает точной отсечки по значению? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2017, 16:56 |
|
||
|
ROWNUM
|
|||
|---|---|---|---|
|
#18+
DmtPЕсть объяснение почему ROWNUM не дает точной отсечки по значению? Есть. И оно написано в плане запроса. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2017, 17:04 |
|
||
|
ROWNUM
|
|||
|---|---|---|---|
|
#18+
DmtP, А так сколько выдает ? Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2017, 17:11 |
|
||
|
ROWNUM
|
|||
|---|---|---|---|
|
#18+
DmtP, Код: 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. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2017, 17:31 |
|
||
|
ROWNUM
|
|||
|---|---|---|---|
|
#18+
РогафипDmtP, А так сколько выдает ? Код: plsql 1. так вернет 999 записей .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2017, 17:34 |
|
||
|
ROWNUM
|
|||
|---|---|---|---|
|
#18+
Stax, Dimitry Sibiryakov , вы правы: DISTINCT применяется после ограничения по ROWNUMBER Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2017, 18:17 |
|
||
|
ROWNUM
|
|||
|---|---|---|---|
|
#18+
Чтобы не начинать новую тему... Есть таблица, в ней один числовой столбец. В ней 1кк строк примерно 100к уникальных значений. На поле создан обыкновенный индекс. Задача выбрать первые 100 строк в порядке возрастания. Подготовка данных: Код: plsql 1. 2. 3. 4. 5. Разминочный вопрос: знает ли кто причину "фичи", по которой, чтобы исключить сортировку в памяти и использовать порядок из индекса нужно указывать столбец в условии фильтрации? 1) хороший план Код: plsql 1. 2) плохой план Код: plsql 1. Основной вопрос: как выбрать 100 уникальных строк в порядке возрастания без выполнения сортировки в памяти(ну или на диске). Т.е. чтобы результат такой же, как вернет запрос ниже Код: plsql 1. P.S. версия 11.2.0.4.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2018, 13:25 |
|
||
|
ROWNUM
|
|||
|---|---|---|---|
|
#18+
роман23twhere res = resres is not null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2018, 13:33 |
|
||
|
ROWNUM
|
|||
|---|---|---|---|
|
#18+
роман23tЧтобы не начинать новую тему...Напрасно. роман23t Разминочный вопрос: знает ли кто причину "фичи", по которой, чтобы исключить сортировку в памяти и использовать порядок из индекса нужно указывать столбец в условии фильтрации? Намек : как хранятся null-ы в индексе? роман23t Основной вопрос: как выбрать 100 уникальных строк в порядке возрастания без выполнения сортировки в памяти(ну или на диске). Т.е. чтобы результат такой же, как вернет запрос нижеОбеспечить гарантию того, что все строки таблицы есть в индексе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2018, 13:34 |
|
||
|
ROWNUM
|
|||
|---|---|---|---|
|
#18+
по первому вопросу точно подмечено! А вроде и всегда знал, про то что null не хранится в индексе... по второму добавление ограничения not null на столбец не помогло. Видимо я тебя не правильно понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2018, 13:59 |
|
||
|
ROWNUM
|
|||
|---|---|---|---|
|
#18+
В итоге так получилось Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Хотя план рисует не ахти по стоимости, выбирает мгновенно, сортировки нет в памяти. (причем и на целевой таблице) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2018, 10:16 |
|
||
|
ROWNUM
|
|||
|---|---|---|---|
|
#18+
роман23t, роман23tсортировки нет в памяти а SORT UNIQUE NOSORT по твоему что такое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2018, 14:47 |
|
||
|
ROWNUM
|
|||
|---|---|---|---|
|
#18+
feagorа SORT UNIQUE NOSORT по твоему что такое? Ну это не сортировка а "заметка" - просили отсортировать а данные итак отсортированы (ведь данные читаем по INDEX FULL SCAN. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2018, 14:57 |
|
||
|
ROWNUM
|
|||
|---|---|---|---|
|
#18+
feagorроман23t, роман23tсортировки нет в памяти а SORT UNIQUE NOSORT по твоему что такое? твой коммент из серии накинуть г..на на вентилятор. По мне так SORT UNIQUE NOSORT это удаление дубликатов строк из уже отсортированной выборки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2018, 15:56 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39542701&tid=1883533]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
144ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 435ms |

| 0 / 0 |
