|
Вопрос по порядку записей
|
|||
---|---|---|---|
#18+
У меня есть запрос примерно такого вида: Код: plsql 1. 2. 3.
Каждый "подзапрос" может возвратить 0 или 1 строку. То есть запрос может возвратить от нуля до двух строк. Меня интересует в первую очередь строка с table1, если ее нет, только тогда строка с table2. Поэтому в клиентском коде я просто считываю первую строку и работаю с ней. Можно ли полагаться на то, что порядок записей в выборке всегда будет именно таким? Или для гарантии нужно добавить столбец (со значением 1 для первого "подзапроса" и 2 для второго), засунуть в подзапрос и добавить order by? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 15:33 |
|
Вопрос по порядку записей
|
|||
---|---|---|---|
#18+
Без order by на порядок полагаться нельзя. Это основы SQL. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 15:41 |
|
Вопрос по порядку записей
|
|||
---|---|---|---|
#18+
Alibek B.Меня интересует в первую очередь строка с table1, если ее нет, только тогда строка с table2. Тогда лучше вообще не посылать второй запрос если из первого что-то пришло. И тебе легче, и серверу. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 15:45 |
|
Вопрос по порядку записей
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovБез order by на порядок полагаться нельзя. Это основы SQL. Здравый смысл мне подсказывает, что сервер не будет специально перемешивать записи. Добавить сортировку несложно, но мне она кажется избыточной. В плане выполнения union-all присутствует и я не вижу причины, почему сервер может поменять порядок выполнения отдельных запросов. Dimitry SibiryakovТогда лучше вообще не посылать второй запрос если из первого что-то пришло. И тебе легче, и серверу. Я считал, что два отдельных запроса выполняются дольше и требуют больше внимания сервера, чем один запрос, склеенный из двух. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 16:01 |
|
Вопрос по порядку записей
|
|||
---|---|---|---|
#18+
Alibek B.Я считал Ты ошибался. Как и твой здравый смысл. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 16:07 |
|
Вопрос по порядку записей
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovAlibek B.Я считал Ты ошибался. один запрос может быть быстрее нескольких, все зависит от статистики ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 16:12 |
|
Вопрос по порядку записей
|
|||
---|---|---|---|
#18+
Alibek B.Здравый смысл мне подсказывает, что сервер не будет специально перемешивать записи.Здравый смысл подсказывает, что concurrent union "не будет специально перемешивать записи". ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 16:41 |
|
Вопрос по порядку записей
|
|||
---|---|---|---|
#18+
-2-Alibek B.Здравый смысл мне подсказывает, что сервер не будет специально перемешивать записи.Здравый смысл подсказывает, что concurrent union "не будет специально перемешивать записи".А неконкурент гарантированно не будет перемешивать? https://docs.oracle.com/database/121/VLDBG/GUID-1F4C90F9-3EF5-423A-B55B-2593FB3F1433.htm However, unlike the sequential processing of one branch after another, the concurrent processing does not guarantee an ordered return of the results of the individual branches. If an ordered return of one branch after another is required, then you either must disable concurrent processing using the NO_PQ_CONCURRENT_UNION hint or you must augment the SQL statement to uniquely identify individual branches of the statement and to sort on this specified identifier. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 16:49 |
|
Вопрос по порядку записей
|
|||
---|---|---|---|
#18+
просто добавить rownum=1 - он отключает все оптимизации типа concurent_unionAlibek B. Код: plsql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 18:30 |
|
Вопрос по порядку записей
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovТы ошибался. Как и твой здравый смысл.зависит от запроса ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 18:31 |
|
Вопрос по порядку записей
|
|||
---|---|---|---|
#18+
xtenderпросто добавить rownum=1 Сегодня отключает, завтра - перестанет... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 18:59 |
|
Вопрос по порядку записей
|
|||
---|---|---|---|
#18+
xtenderпросто добавить rownum=1 Спасибо за совет, но если делать так, то надёжнее добавить столбец с числом и сортировку по нему. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 19:03 |
|
Вопрос по порядку записей
|
|||
---|---|---|---|
#18+
Alibek B. Меня интересует в первую очередь строка с table1, если ее нет, только тогда строка с table2. Зачем заморачиваться с сортировкой, если проблему можно решить банальным оператором CASE? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 10:14 |
|
|
start [/forum/topic.php?fid=52&fpage=73&tid=1882332]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 139ms |
0 / 0 |