![]() |
![]() |
![]() |
|
v8: Стоит ли индексировать измерения регистра сведений? | ☑ | ||
---|---|---|---|---|
0
Галахад
гуру
28.06.12
✎
08:13
|
Будут ли быстре выполнятьсмя запросы к нему?
|
|||
1
golden-pack
28.06.12
✎
08:14
|
да
|
|||
2
ДенисЧ
28.06.12
✎
08:14
|
Будут.
Но будет медленней проходить запись. тут нужно искать компромисс |
|||
3
МихаилМ
28.06.12
✎
08:23
|
все зависит от селективности
если отбот будет по 2 полям с одинаковой селективностью индексов то оптимизатор запросов мс скл может выбрать фул скан. куда уж неотимальней |
|||
4
vde69
28.06.12
✎
08:26
|
(2) интересно найти базу где количество записей в регистр превосходит количество чтений :)
индексировать нужно обязательно все измерения, только что-бы не нарватся нужно соблюдать простые правила 1. в измерениях нельзя использовать составные и примитивные типы 2. более 5 измерений ведет к резкому величению тормозов |
|||
5
butterbean
28.06.12
✎
08:28
|
(4) почему примитивные нельзя??
|
|||
6
butterbean
28.06.12
✎
08:28
|
(5)+ а для небольших по объему записей регистров хотя-бы можно??
|
|||
7
vde69
28.06.12
✎
08:29
|
(5) по тому-что гладиолус :)
приметивные типы занимают больший размер (чем ссылочные) кластерного индекса. |
|||
8
Defender aka LINN
28.06.12
✎
08:32
|
(7) Как-то на мой скромный взгляд "занимают больший размер" и "нельзя" немножко разные вещи. Ну и "ссылочное поле" - это 2 числовых, по сути. Как же так хитро получается?
|
|||
9
andrewks
28.06.12
✎
08:35
|
(7) про строки большой длины согласен, числа в измерениях сомнительны. а вот почему бы не индексировать по небольшим строкам и датам? (хотя единственным не-моветоном в измерениях, пожалуй, будут дата и булево)
|
|||
10
vde69
28.06.12
✎
08:36
|
(8) индекс приметивного типы - содержат идентификатор типа...
|
|||
11
Defender aka LINN
28.06.12
✎
08:38
|
(10) Еще раз: ссылка - это 2 (ДВА) числовых поля. Почему по двум полям индекс - хорошо, по одному - плохо и вообще нельзя?
|
|||
12
Галахад
гуру
28.06.12
✎
08:46
|
Гм. Оказалось, что почти никакой разницы. :-)
проблема в том, что в запросе есть конструкции типа. РС.Ссылка.Дата РС.Ссылка.Номер РС.Ссылка.Проыеден Как только их убираю 1-2 сек. С ними 40... Есть какие-нибуль мысли? |
|||
13
andrewks
28.06.12
✎
08:47
|
текст запроса в студию
|
|||
14
Sammo
28.06.12
✎
08:48
|
(0) Зависит от запроса.
(12) Неявное соединение в скулевском запросе. А если еще составной тип, то неявное левое соединение с таблицами всех документов, входящих в тип. Там случайно тип не ДокументСсылка? :) |
|||
15
Ненавижу 1С
гуру
28.06.12
✎
08:49
|
(10) чего это?
|
|||
16
Галахад
гуру
28.06.12
✎
08:49
|
ВЫБРАТЬ
Соответствие1С_и_не1С.IDОбъекта КАК НомерЗаказа, Соответствие1С_и_не1С.ИмяОбъекта, Соответствие1С_и_не1С.СсылкаНаОбъект.Номер КАК Номер, Соответствие1С_и_не1С.СсылкаНаОбъект.Дата КАК Дата, Соответствие1С_и_не1С.СсылкаНаОбъект.Ссылка КАК Ссылка, ВЫБОР КОГДА Соответствие1С_и_не1С.СсылкаНаОбъект.Ссылка ССЫЛКА Документ.СчетНаОплатуПокупателю ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК ЭтоСчет, Соответствие1С_и_не1С.СсылкаНаОбъект.Проведен КАК Проведен, Соответствие1С_и_не1С.КоэффициентПересчета ИЗ РегистрСведений.Соответствие1С_и_не1С КАК Соответствие1С_и_не1С ГДЕ Соответствие1С_и_не1С.ИмяОбъекта В(&Фильтр) И Соответствие1С_и_не1С.СсылкаНаОбъект.Дата МЕЖДУ &ДатаНач И &ДатаКон И (&УсловиеПроведенПусто ИЛИ (НЕ Соответствие1С_и_не1С.СсылкаНаОбъект.Проведен)) |
|||
17
Sammo
28.06.12
✎
08:50
|
СсылкаНаОбъект какого типа?
|
|||
18
andrewks
28.06.12
✎
08:51
|
используй явное соединение РегистрСведений.Соответствие1С_и_не1С и объекта СсылкаНаОбъект
|
|||
19
Галахад
гуру
28.06.12
✎
08:52
|
(17)
ДокументСсылка, СправочникСсылка.Контрагенты, СправочникСсылка.Номенклатура (18) Гм. не понял. |
|||
20
Sammo
28.06.12
✎
08:53
|
ВЫБОР
КОГДА Соответствие1С_и_не1С.СсылкаНаОбъект.Ссылка ССЫЛКА Документ.СчетНаОплатуПокупателю Не камильфо (СсылкаНаОбъект.Ссылка) |
|||
21
Галахад
гуру
28.06.12
✎
08:55
|
(20) Убрал этот кусок вообще - не помагло.
ВЫБОР КОГДА Соответствие1С_и_не1С.СсылкаНаОбъект.Ссылка ССЫЛКА Документ.СчетНаОплатуПокупателю ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК ЭтоСчет, |
|||
22
Sammo
28.06.12
✎
08:56
|
(19) Ну и "получи фашист гранату". Когда данный запрос получает скуль, он таблицу Соответствие1С_и_не1С join-ит с таблицами _ВСЕХ_ документов, которые есть в метаданных + с таблицами 2 справочников.
Я уж молчу, что какое поведение запроса ты ожидаешь от запроса, если СсылкаНаОбъект если он справочникСсылка.Номенклатура - что он должен вернуть на СсылкаНаОбъект.Проведен ? В чем суть - надо отобрать все по флиьтру или таки только счета? |
|||
23
Sammo
28.06.12
✎
08:57
|
20 - это просто некрасивость - использовать ссылку от ссылки
|
|||
24
andrewks
28.06.12
✎
08:57
|
(19) 1. жесть
|
|||
25
andrewks
28.06.12
✎
08:58
|
какова задача, вообще?
|
|||
26
Галахад
гуру
28.06.12
✎
08:59
|
(22) Я правильно понял? Если явно указать методанные.документы, которые мне нужноы. Их штук 8, то будет быстее?
По второму вопросу - справочникСсылка.Номенклатура Используется фильтр Соответствие1С_и_не1С.ИмяОбъекта В(&Фильтр) |
|||
27
Галахад
гуру
28.06.12
✎
09:00
|
(24) Что именно?
(25) Ну, как бы: Соответствие1С_и_не1С |
|||
28
Defender aka LINN
28.06.12
✎
09:11
|
(22) "если СсылкаНаОбъект если он справочникСсылка.Номенклатура - что он должен вернуть на СсылкаНаОбъект.Проведен ? " - NULL. ВНЕЗАПНО, да?
|
|||
29
Maxus43
28.06.12
✎
09:14
|
(4) >>интересно найти базу где количество записей в регистр превосходит количество чтений
легко, версионирование) |
|||
30
Sammo
28.06.12
✎
09:15
|
(28) Вопрос был не в том, что вернет, а в том, что он ожидает, что вернет. Если ожидает, что вернет булево, а вернет Null получится сюрприз :)
|
|||
31
Галахад
гуру
28.06.12
✎
09:16
|
Подведу итог.
1. Сделал как в (22). Явно прописал в регистре регистраторы. 2. Получил 1-2 секунды. Спасибо всем. SammoЮ, респект. |
|||
32
unregistered
28.06.12
✎
09:28
|
Гораздо интереснее что означает реквизит Дата у справочников Контрагенты и Номенклатура. Ведь в запросе есть условие
ГДЕ Соответствие1С_и_не1С.СсылкаНаОбъект.Дата МЕЖДУ &ДатаНач И &ДатаКон |
|||
33
unregistered
28.06.12
✎
09:30
|
Кстати. Ведь уже есть некий параметр &Фильтр. Если предположить, что это фильтр по именам объектов метаданных, то можно собрать текст запроса с явными соединениями к нужным таблицам.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |