Имя: Пароль:
1C
 
От чего зависит порядок в таблице значений?
🠗 (Волшебник 04.12.2020 09:57)
0 Галахад
 
гуру
03.12.20
13:33
Иногда, после запроса порядок тот же, иногда другой.

    Запрос.УстановитьПараметр("тз1",Таблица);
    Запрос.Текст=
    "ВЫБРАТЬ
    |    *
    |ПОМЕСТИТЬ Вт1
    |ИЗ
    |    &тз1 КАК тз1
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    Вт1.*
    |ИЗ
    |    Вт1 КАК Вт1
    |";
    Таблица1 = Запрос.Выполнить().Выгрузить();
1 ДенисЧ
 
03.12.20
13:35
Как БГ на душу положит.
Порядок записей в результате запроса без явной сортировки неопределён.
2 RomanYS
 
03.12.20
13:35
документально нигде не закреплено, значит может быть любой
3 Малыш Джон
 
03.12.20
13:35
Неопределенное поведение.
4 kzot
 
03.12.20
13:36
(1) а если индекс ?
5 H A D G E H O G s
 
03.12.20
13:37
(4) Как захочет оптимизатор, но почти всегда он захочет прочитать по индексу в порядке, сформированной индексом.
6 ДенисЧ
 
03.12.20
13:37
(4) А по пояс. В смысле - до ширинки.
7 kzot
 
03.12.20
13:39
(6) ну конечно, значит это в другой 1С.
8 Mikeware
 
03.12.20
13:40
(6) сверху?
9 ДенисЧ
 
03.12.20
13:42
(8) Не знаю, как у вас там, а у нас здесь это одинаковое расстояние.
10 Галахад
 
гуру
03.12.20
13:42
И все же какой-то порядок есть.
Потестил.
Одна и та же таблица возвращается одинаково.
Некоторые даже в том же порядке как и до запроса.
11 kzot
 
03.12.20
13:47
(5) я скорее про |ИНДЕКСИРОВАТЬ ПО
12 Малыш Джон
 
03.12.20
14:02
(10) >>И все же какой-то порядок есть

и это радует
13 runoff_runoff
 
03.12.20
14:04
(11) и если бы индекс был кластерным.. но 1С пока этого не умеет..
14 H A D G E H O G s
 
03.12.20
14:06
(13) Умеет
15 runoff_runoff
 
03.12.20
14:18
(14) create clustered index умеет в коде?
или он всегда кластерный.. или первый индекс всегда кластерный?
16 H A D G E H O G s
 
03.12.20
14:40
(15) Да.
В том смысле, как вы так умудряетесь формировать свои вопросы, что их фиг поймешь.

При создании ВТ можно создать только один индекс.
В этом индексе можно указать любой состав полей таблицы.
Все эти поля войдут в этот индекс.
Раньше он был некластерным.
Сейчас он кластерный, либо с платформы 8.3, либо с какогото релиза 8.3.x
17 runoff_runoff
 
03.12.20
14:53
(16) отлично.. хотя бы в запросах..
имелось в виду: ТЗ.Индексы.Добавить("Ссылка, Номенклатура"); тут, я так понимаю, индекс будет некластеррным?
18 ДенисЧ
 
03.12.20
14:59
В ТЗ кластерный индекс?
Не, я понимаю, что там 50 стран согласовали ненаркоту марьванны... Но тут уже покрепче что-то...
19 H A D G E H O G s
 
03.12.20
15:00
Епстественно, речь про ВТ, в которую помещается ТЗ.
В ТЗ индекс конечно не кластерный, порядок строк то не меняется.
20 Answer42
 
04.12.20
09:06
(15) Всё-таки есть и другие СУБД кроме MsSql.
Например, я слышал сейчас PostgreSql довольно моден стал.
А на этих самых других СУБД (из тех что поддерживает 8ка) кластерных индексов в понимании MsSql нет - так что в платформе их всё-таки нет.
Но для некоторых (скажем 1.5)  СУБД кластерные индексы используются как (довольно существенная) оптимизация.
21 Ненавижу 1С
 
гуру
04.12.20
09:45
упорядочивайте данные явно и закройте вопрос
22 ДенисЧ
 
04.12.20
09:47
(21) А поговорить?
23 Галахад
 
гуру
04.12.20
09:48
(21) На практике вопрос закрыт до его появления тут. Интересна теория.
24 Галахад
 
гуру
04.12.20
09:48
(22) +1.
25 Волшебник
 
04.12.20
09:59
Упорядочивайте данные явно и не грузите нас
26 Галахад
 
гуру
04.12.20
10:02
(25) Вроде я ветку не апал, народ самостоятельно грузит себя.