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


1С:Предприятие :: 1С:Предприятие 8 общая

Оптимизация запроса для полей составного типа

Оптимизация запроса для полей составного типа
Я
   pmb
 
25.01.13 - 09:22
Вопрос по производительности работы типовой конфигурации:
есть РН Расходы УСН, у которого есть измерение составного типа Партия (документы)
в модуле проведения документа есть запрос, где получаются остатки по этому РН по определенным условиям и далее они сортируются по полю Партия.Дата.

Естественно SQL делает соединения с таблицами всех типов документов, которые установлены для этого поля.
Вопрос - можно как-то оптимизировать выполнение этого запроса?

Единственный вариант, который знаю, это уменьшить кол-во типов документов для этого поля до реально используемых. Но это очень грубо.
 
 
   Maxus43
 
1 - 25.01.13 - 09:28
ещё куеву тучу ВЫРАЗИТЬ можно написать
Когда ТИПЗНАЧЕНИЯ(Пратия) = ТИП("Документа.АляУлю") Тогда
   ВалераОшкин
 
2 - 25.01.13 - 09:31
(1) ВЫРАЗИТЬ надо писать однозначно когда работаешь с полями составного типа, иначе запрос будет коннектить все таблицы, на которые ссылается поле составного типа.
   H A D G E H O G s
 
3 - 25.01.13 - 09:31
(0) Нет.
   Maxus43
 
4 - 25.01.13 - 09:33
(2) я вкурсе, (0) перечитай внимательно - в типовых не делают этого
   H A D G E H O G s
 
5 - 25.01.13 - 09:33
Ситуацию отлично можно передать словами:

Когда-нибудь мы вспомним это
И не поверится самим
А нынче нам нужна одна победа
Одна на всех мы за ценой не постоим
Одна на всех мы за ценой не постоим
   H A D G E H O G s
 
6 - 25.01.13 - 09:34
Когда нибудь введут в базу новый тип документа, которого нет в списке текуших, либо в Партию впилят свой, особый партионный документ и тогда - оля, улю, приплыли.
   Sammo
 
7 - 25.01.13 - 09:34
Зависит от условий
   pmb
 
8 - 25.01.13 - 09:35
(6) тогда можно как в 7.7 сделать - справочник Партий, у которого будут все нужные для запроса реквизиты и ссылка на документ
   Fragster
 
9 - 25.01.13 - 09:36
а вот в семерке был справочник партий...
   H A D G E H O G s
 
10 - 25.01.13 - 09:37
(8) Я смутно это помню, но как по мне - страшная херовина была
 
 Рекламное место пустует
   pmb
 
11 - 25.01.13 - 09:37
(1) сомневаюсь что такой вариант будет быстрее работать на кол-ве документов в типе Партия больше 30
   Maxus43
 
12 - 25.01.13 - 09:37
да, для оптимизации справочник - вещь конечно в этом смысле
   Sammo
 
13 - 25.01.13 - 09:38
Для начала - оптимизировать для чего? Для вашей базы на текущий момент это проблема?
+
Что за запрос (типовой или ваш), какие условия накладываются?
   НафНаф
 
14 - 25.01.13 - 09:38
(6) да, да и когда простой тип меняется на составной условия на пустые ссылки перестают работать
   Maxus43
 
15 - 25.01.13 - 09:39
(11) не будет "соединения с таблицами всех типов документов" зато... я то сам против чесно говоря
   Sammo
 
16 - 25.01.13 - 09:39
(14) Здесь тип уже составной. Хотя это отдельный вопрос - нет ли там пустых ссылок вместо неопределено :)
   Maxus43
 
17 - 25.01.13 - 09:41
(16) в РБ кстати норм сделали, если субконто составного типа то в модуле регистра принудительно неопределено ставили, чтоб случайно не случился разрыв по субконто, если пустую ссылку фиганут
   H A D G E H O G s
 
18 - 25.01.13 - 09:42
(17) 1с заботится о прогерах как только может
   НафНаф
 
19 - 25.01.13 - 09:44
(18) ага, сначала расставляет грабли - потом мужественно их же собирает ))
   Maxus43
 
20 - 25.01.13 - 09:45
(18) скорее о психике бухгалтеров, когда они в оборотке увидят разрывы по Пустым полям
   H A D G E H O G s
 
21 - 25.01.13 - 09:45
(19) Это естественный отбор совсем нежизнеспособных дятлов.
   Defender aka LINN
 
22 - 25.01.13 - 09:48
(0) Соединение какбе будет и так только с реально используемыми таблицами.
   pmb
 
23 - 25.01.13 - 09:50
(22) профайлер говорит обратное
   cw014
 
24 - 25.01.13 - 10:03
Это у тебя еще по божески. Вот у кривых рук некой организации был тип значения у ПВХ - документ ссылка.

А запрос был такой
"ВЫБРАТЬ * 
ИЗ РегистрСведений.Такойто
ГДЕ Измерение = ПВХ.Такойто
И Ресурс.Проведен"

Ой после такого запроса как в КА висло проведение любого документа, ой как висло. На 30 минут, каждый

А кодик у этих криворуких друзей был закрыт (читай без исходного модуля). По шишкам получил программист, а контора непричем, и в обратной связи через сутки после происшествия написали - "нашли ошибку, исправим в следующей версии, которая выйдет через 2 месяца"


Так что думай... :)
   Sammo
 
25 - 25.01.13 - 10:23
(22) Фигушки. Со всеми возможными - это всегда при обращении через точку.
   banco
 
26 - 25.01.13 - 10:26
(0) Добавить измерение Дата.
   H A D G E H O G s
 
27 - 25.01.13 - 10:54
(26) Ахиренно. Это пять!
   acsent
 
28 - 25.01.13 - 10:57
соединение по кластерному индексу вообщето не дорогая операция. Если конечно таблиц не более 256
   banco
 
29 - 25.01.13 - 11:07
(27) и что тебе не понравилось?
   banco
 
30 - 25.01.13 - 11:10
(27) При необходимости жертвуйте компактностью хранения данных ради производительности. Если в запросе вам понадобилось значение, полученное через ссылку, то, возможно, это значение можно хранить непосредственно в данном объекте. Например, если при работе с регистром вам требуется информация о дате регистратора, вы можете завести в регистре соответствующий реквизит и назначать ему значение при проведении документов. Это приведет к дублированию информации и некоторому (незначительному) увеличению ее объема, но может существенно повысить производительность и стабильность работы запроса.
   pmb
 
31 - 25.01.13 - 12:33
(26) план запроса по разному строиться. У меня это Nested Loops
   acsent
 
32 - 25.01.13 - 12:36
(30) если нужно отбор делать по дате, то конечно нужно выводить + индексы, а так смысла мало


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