Имя: Пароль:
1C
1С v8
Случайное упорядочивание результатов запроса
0 Абыр
 
15.05.15
18:01
Если в запросе выбираются ссылки и не указано УПОРЯДОЧИТЬ ПО и АВТОУПОРЯДОЧИВАНИЕ, то верно ли, что записи в результате запроса распределены случайным образом (отсортированы по GUID, который генерится рандомно)?
1 H A D G E H O G s
 
15.05.15
18:03
(0) Верно для ссылочных объектов.
2 SUA
 
15.05.15
18:31
распределены случайным образом != отсортированы по какому-либо полю
3 Fragster
 
гуру
15.05.15
18:33
(1) не верно для ссылочных объектов
4 Fragster
 
гуру
15.05.15
18:34
в (0) вообще какая-то фигня написана
5 Fragster
 
гуру
15.05.15
18:35
"распределены случайным образом" это не "отсортированы по GUID"
6 Fragster
 
гуру
15.05.15
18:35
да и GUID в 1с не генерится рандомно
7 GROOVY
 
15.05.15
18:45
И добавить нечего. :(
8 Basilio
 
15.05.15
18:54
зато какое интригующее название топика)
9 Torquader
 
15.05.15
19:31
Они или отсортированы по GUID-у или просто идут в порядке попадания в запрос (то есть отсортированы по положению в данных).
10 WebberNSK
 
15.05.15
19:36
(0) зачем тебе это?
если нужно упорядочить - упорядочи правильно или убедись, что порядок нужный.
Если все равно какой будет порядок - не заморачивайся
11 MrStomak
 
15.05.15
20:25
будут отсортированы либо по кластерному индексу, либо по физическому расположению на странице, это зависит от субд, используемого уровня изоляции и вообще от оптимизатора, возможно и фрагментация влияет. Второй случай редкий и сложноуловимый. Ну если кластерного индекса нет, то тогда 1 вариант остается по идее.
12 mehfk
 
15.05.15
20:54
>> Если в запросе выбираются ссылки и не указано УПОРЯДОЧИТЬ ПО и АВТОУПОРЯДОЧИВАНИЕ, то верно ли, что записи в результате запроса распределены случайным образом (отсортированы по GUID, который генерится рандомно)?

Во-первых смотри (2),
Во-вторых правильный ответ: порядок сортировки не определен
13 H A D G E H O G s
 
15.05.15
20:58
(3) Почему?
14 hhhh
 
15.05.15
22:53
(13) логически объясните, допустим в запросе 10 ссылочных полей и 10 нессылочных. Как он разбирается, по какому сортировать?
15 MrStomak
 
15.05.15
23:36
(14) Есть такое понятие - кластерный индекс, которое подразумевает физическое размещение данных в определенном порядке.
16 Torquader
 
15.05.15
23:52
(15) И никто не обещает, что, например, в файловой базе он используется.
17 H A D G E H O G s
 
15.05.15
23:58
(14) Никак. Но мы говорим про 1 таблицу; я понял, что хотел спросить автор, я ему и ответил.

(16) Используется. Файловая база полностью повторяет ms sql. Это особенно видно в сравнении запросов файловая-mssql-постгрии. Постгрии от них отличается как раз порядком выборки из РС если не указан УПОРЯДОЧИТЬ ПО явно.
18 H A D G E H O G s
 
16.05.15
00:00
(11) Как раз вариант (1) тогда, когда есть кластерный индекс. Ну вы чего, ребята?!
19 MrStomak
 
16.05.15
10:46
(18) Не всегда по кластерному идёт. С NOLOCK возможнен вариант, когда отдаст по физическому расположению, если кластерный индекс фрагментирован (ну там удаляли, вставляли и т.д.)
20 ДенисЧ
 
16.05.15
10:49
Запомните раз и навсегда.
В любой СУБД, если явно не указан порядок сортировки, то данные могут быть выданы в любом порядке. И этот порядок может меняться от релиза платформы.
Никогда нельзя полагаться на какие-то умолчания, придуманные по принципу ППП.
21 H A D G E H O G s
 
16.05.15
11:13
(19) Что значит "по физическому расположению"? Кластерный индекс и означает, что "физическое расположение" отсортировано по нему.
22 MrStomak
 
16.05.15
12:30
(21) То есть ты на полном серьезе думаешь, что вставка в середину кластерного индекса вызывает физическую перезапись всех данных, находящихся после вставляемого значения? Странно от тебя слышать такое, ты вроде бы адекватный этих вопросах. Физическое расположение отличается, в этом суть фрагментации. Строго по порядку там на другом уровне абстракции, когда карта расположения строится.
23 H A D G E H O G s
 
16.05.15
12:34
(22) Нет конечно. Я не вникал в подробности, но думаю - там обычный двусвязный список, отсортированный связный список. И выборка начинается с его начала. вставка и удаление - это всего лишь перезапись ссылок в предудущем и последующем элементах.
24 MrStomak
 
16.05.15
12:41
(24) Если стоит задача выбрать все данные таблицы без требований, то вот то что ты назвал отсортированным списком - оно не используется. Скуль просто, зная где именно таблица физически лежит, читает ее напрямую, пропуская только удаленное.
25 Fragster
 
гуру
16.05.15
13:25
(13) я хз, что там автор вещает, но "Выбрать различные Док.Контрагент из Документ.РТиУ" будет хз как отсортирован
26 Fragster
 
гуру
16.05.15
13:26
еще можно всякие соединения/условия накатать, тоже не в том порядке будет
27 Fragster
 
гуру
16.05.15
13:27
(26) даже если ссылку поле кластерного индекса выбирать, а использоваться будет другой индекс
28 ДенисЧ
 
16.05.15
13:30
Вот развели тут спор...
Сказано - не определено. Я наблюдал такое на скуле - на одной версии одно, после СП - другое.
Хотите порядок - указывайте сортировку.
29 igork1966
 
16.05.15
14:30
(0) Нафига ориентироваться на нечто зависящее от скорости ветра в Антарктиде?
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.