|
Случайное упорядочивание результатов запроса | ☑ | ||
---|---|---|---|---|
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) Нафига ориентироваться на нечто зависящее от скорости ветра в Антарктиде?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |