Имя: Пароль:
1C
1С v8
Кластеризованный индекс (Баг?)
,
0 aMz
 
22.09.15
09:22
Вопрос к знатокам. на платформе 1С:Предприятие 8.3 (8.3.6.2076) при создании периодического регистра сведений, строиться не правильный кластеризованный индекс, а именно кластиризуется он по измерениям, период становиться последним, то есть записи в таблицы не упорядоченны по периоду.Стало интересно, это за "фича", в описании и поиск в гугле не дает ничего. Есть, кто сталкивался с этим?
1 aMz
 
22.09.15
09:27
То есть расширю чуть-чуть описание: Если взять и скопировать старый регистр ничего не меняя. Кластеризованные индексы будут разные, это явно пришло с каким то релизом. Но зачем?
2 H A D G E H O G s
 
22.09.15
09:38
1) записи упорядочены по периоду
2) период переместили вконец в платформе 8.3
3 aMz
 
22.09.15
10:01
(2) В таблицах SQL не упорядоченны.
4 H A D G E H O G s
 
22.09.15
10:04
(3) упорядочены
5 aMz
 
22.09.15
10:08
(4) ладно, есть объяснение зачем так было сделано?
6 Shamandafil
 
22.09.15
10:12
В 8.3 появились таблицы, хранящие срез первых-последних, срезы стало можно получать без индекса по периоду.
7 aMz
 
22.09.15
10:13
(3) Могу выложить скрин, где они не упорядоченны.
8 aMz
 
22.09.15
10:17
Выходит, что всё это было сделано для мертворожденных таблиц, которые выдают ошибки?
9 aMz
 
22.09.15
10:17
я про срезы первых-последних
10 H A D G E H O G s
 
22.09.15
10:18
(5) если какое то поле таблицы входит в кластерный индекс - таблица автоматом упорядочивается по этому полю. Такие уж законы этой Вселенной.
11 Гёдза
 
22.09.15
10:19
Зачем? Наверно посчитали что с периодом в конце индекс будет более селективным
12 Гёдза
 
22.09.15
10:20
Если нужно на форме, просто устанавливай порядок программно
13 Зеленый пень
 
22.09.15
10:26
(10) Но таблица упорядочивается по первому полю кластерного индекса. И если первое поле - не период, то собрать данные по периоду - уже не обойдешься кластерным индексом.
Разве не так?
14 Shamandafil
 
22.09.15
10:28
(13) Данные по измерениям и периоду можно получить по не кластерному индексу. Он ведь есть.
15 H A D G E H O G s
 
22.09.15
10:32
(13) таблица упорядочивается по всем полям кластерного индекса
16 Гёдза
 
22.09.15
10:35
(13) по периоду вроде отедельный индекс есть
17 Зеленый пень
 
22.09.15
10:36
(15) Моё воображение отказывается представить таблицу, упорядоченную одновременно по всем полям :)
18 H A D G E H O G s
 
22.09.15
10:40
(17) печально
19 Гёдза
 
22.09.15
10:41
(17)
1 1 1
1 1 2
1 2 1
1 2 2
2 1 1
20 vde69
 
22.09.15
10:41
предположу, что сабж сделан для более оптимальных запросов где есть отбор по измерениям но нет отбора по периоду.

то есть частичное использование индекса возможно только при известном начале индекса, в случае когда первым шел период - это не работало...
21 H A D G E H O G s
 
22.09.15
10:42
Тз.сортировать("номенклатура,серияноменклатуры");
Воображение может представить?
22 Зеленый пень
 
22.09.15
10:45
(21) Запросто. Только при поиске нужой серии будет index scan, а не index seek
23 H A D G E H O G s
 
22.09.15
10:48
(22) как indexscan коррелирует с "не могу представить себе таблицу упорядоченную по неск. Полям"?
24 brznzglwgn
 
22.09.15
10:49
Индекс с периодом в начале остался, просто он перестал быть кластерным.
25 Зеленый пень
 
22.09.15
10:50
(23) В (21) таблица упорядочена только по одному полю - "Номенклатура".
"серияноменклатуры" - упорядочена внутри номенклатуры, но вся таблица по серии - не упорядочена.
26 H A D G E H O G s
 
22.09.15
10:54
(25) хорошо, ты выразился более правильно, но обычно говорят именно "таблица упорядочена по набору полей". Вон, даже Анатолий, обычно не пропускающий мои посты, все корректно воспринял и привел пример.
27 Зеленый пень
 
22.09.15
11:02
Но изменения интересные.
Выходит, теперь Срез с отбором по измерениям может строиться быстрее.
28 Shamandafil
 
22.09.15
11:11
(24) И для большинства применений он остался покрывающим.
29 vogenut
 
22.09.15
11:29
(0) Еще в 8.3.1 сделали, но в доке указали почему-то только для DB2.

При использовании СУБД IBM DB2 создаются кластерные индексы:
регистры сведений - Измерения, Измерения+Период, Регистратор+Номер, Измерения+Период+Регистратор+Номер, Измерения+Период (в зависимости от типа регистра).