|
Order by по умолчанию в Firebird 2.5
|
|||
---|---|---|---|
#18+
Всем привет! Возник важный для меня вопрос: Как упорядочиваются строки в результате select'а, если явно не указан Order by? И в продолжении этого, еще один важный момент: Возможно ли сделать два таких select запроса к базе, чтобы они вернули одинаковые таблицы, но с разными порядками строк, при этом не используя order by ? Могут ли на порядок строк повлиять различные подходы к решению задачи? Сам я нашел вот такую вот информацию: When a SELECT statement is executed, the result set is not sorted in any way. It often happens that rows appear to be sorted chronologically, simply because they are returned in the same order they were added to the table by INSERT statements. Результат выборки данных при выполнении оператора SELECT по умолчанию никак не упорядочивается (хотя довольно часто происходит упорядочение в хронологическом порядке помещения строк в таблицу операторами INSERT). Предложение ORDER BY позволяет задать необходимый порядок при выборке данных. Источник - Руководство по языку SQL СУБД Firebird 2.5 http://www.firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/Firebird_Language_Reference_25EN.pdf Меня напрягает в этой документации фраза "Довольно часто". Что это значит?? Что я миллион раз запущу и он упорядочит, а на миллион первый раз нет?? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2016, 13:45 |
|
Order by по умолчанию в Firebird 2.5
|
|||
---|---|---|---|
#18+
kir2206Что это значит?? Для понимания этого надо долго и вдумчиво читать http://www.ibase.ru/dataaccesspaths/ Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2016, 13:49 |
|
Order by по умолчанию в Firebird 2.5
|
|||
---|---|---|---|
#18+
kir2206> Что это значит?? Ничего не значит. Всё что в скобках можешь выкинуть из головы. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2016, 14:15 |
|
Order by по умолчанию в Firebird 2.5
|
|||
---|---|---|---|
#18+
kir2206, это Хелен для упрощения так написала. Хоть какие-то предположения можно желать только если select идёт из одной таблицы и с помощью NATURAL SCAN. В этом случае записи будут прочитаны со страницы в порядке их расположения на странице. Сами же страницы будут прочитаны в порядке их выделения. А теперь подумай что будет когда вмешиваются удаления и обновления записей. Так что я бы в общем случае считал что без ORDER BY записи не упорядочены вовсе. Даже если тебе повезло и записи сейчас выходят в хронологическом порядке, то всё равно закладываться на это нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2016, 15:28 |
|
Order by по умолчанию в Firebird 2.5
|
|||
---|---|---|---|
#18+
Симонов Денис> в порядке их расположения на странице Симонов Денис> А теперь подумай что будет когда вмешиваются Симонов Денис> удаления и обновления записей. Вот, у тебя правильная формулировка. А в цитате - неправильная или, как минимум, неоднозначная. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2016, 16:04 |
|
Order by по умолчанию в Firebird 2.5
|
|||
---|---|---|---|
#18+
Всем большое спасибо за ответы! Для меня было важно это выяснить. kir2206Возможно ли сделать два таких select запроса к базе, чтобы они вернули одинаковые таблицы, но с разными порядками строк, при этом не используя order by ? Могут ли на порядок строк повлиять различные подходы к решению задачи? Получается что да, такое возможно? Просто я потестировал, на тех задачах, что я смог придумать, так сделать никак не получалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2016, 16:18 |
|
Order by по умолчанию в Firebird 2.5
|
|||
---|---|---|---|
#18+
> Получается что да, такое возможно? Получить результаты с разным порядком записей - конечно, можно. Но ни один из способов не гарантированный. Что тебе и объясняют. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2016, 16:33 |
|
Order by по умолчанию в Firebird 2.5
|
|||
---|---|---|---|
#18+
kir2206Как упорядочиваются строки в результате select'а, если явно не указан Order by? никак. выводятся так как лежат в БД, т.е. вперемешку. ORDER BY - единственный способ упорядочить выдаваемые запросом записи. kir2206Возможно ли сделать два таких select запроса к базе, чтобы они вернули одинаковые таблицы, но с разными порядками строк, при этом не используя order by? элементарно, при многопользовательской работе, и если эти таблицы модифицируются. Новые записи попадают на место удаленных, и т.д. kir2206Источник - Руководство по языку SQL СУБД Firebird 2.5 зачем читать на английском, если можно читать на русском? http://www.ibase.ru/files/firebird/Firebird_2_5_Language_Reference_RUS.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2016, 22:53 |
|
|
start [/forum/topic.php?fid=40&gotonew=1&tid=1562125]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
10ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 146ms |
0 / 0 |