Вход | Регистрация
 

От чего зависит порядок в таблице значений?

↓ [Волшебник, 04.12.20 - 09:57]
От чего зависит порядок в таблице значений?
Я
   Галахад
 
03.12.20 - 13:33
Иногда, после запроса порядок тот же, иногда другой.

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

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

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


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.