|
Оптимизация запроса для полей составного типа | ☑ | ||
---|---|---|---|---|
0
pmb
25.01.13
✎
09:22
|
Вопрос по производительности работы типовой конфигурации:
есть РН Расходы УСН, у которого есть измерение составного типа Партия (документы) в модуле проведения документа есть запрос, где получаются остатки по этому РН по определенным условиям и далее они сортируются по полю Партия.Дата. Естественно SQL делает соединения с таблицами всех типов документов, которые установлены для этого поля. Вопрос - можно как-то оптимизировать выполнение этого запроса? Единственный вариант, который знаю, это уменьшить кол-во типов документов для этого поля до реально используемых. Но это очень грубо. |
|||
1
Maxus43
25.01.13
✎
09:28
|
ещё куеву тучу ВЫРАЗИТЬ можно написать
Когда ТИПЗНАЧЕНИЯ(Пратия) = ТИП("Документа.АляУлю") Тогда |
|||
2
ВалераОшкин
25.01.13
✎
09:31
|
(1) ВЫРАЗИТЬ надо писать однозначно когда работаешь с полями составного типа, иначе запрос будет коннектить все таблицы, на которые ссылается поле составного типа.
|
|||
3
H A D G E H O G s
25.01.13
✎
09:31
|
(0) Нет.
|
|||
4
Maxus43
25.01.13
✎
09:33
|
(2) я вкурсе, (0) перечитай внимательно - в типовых не делают этого
|
|||
5
H A D G E H O G s
25.01.13
✎
09:33
|
Ситуацию отлично можно передать словами:
Когда-нибудь мы вспомним это И не поверится самим А нынче нам нужна одна победа Одна на всех мы за ценой не постоим Одна на всех мы за ценой не постоим |
|||
6
H A D G E H O G s
25.01.13
✎
09:34
|
Когда нибудь введут в базу новый тип документа, которого нет в списке текуших, либо в Партию впилят свой, особый партионный документ и тогда - оля, улю, приплыли.
|
|||
7
Sammo
25.01.13
✎
09:34
|
Зависит от условий
|
|||
8
pmb
25.01.13
✎
09:35
|
(6) тогда можно как в 7.7 сделать - справочник Партий, у которого будут все нужные для запроса реквизиты и ссылка на документ
|
|||
9
Fragster
гуру
25.01.13
✎
09:36
|
а вот в семерке был справочник партий...
|
|||
10
H A D G E H O G s
25.01.13
✎
09:37
|
(8) Я смутно это помню, но как по мне - страшная херовина была
|
|||
11
pmb
25.01.13
✎
09:37
|
(1) сомневаюсь что такой вариант будет быстрее работать на кол-ве документов в типе Партия больше 30
|
|||
12
Maxus43
25.01.13
✎
09:37
|
да, для оптимизации справочник - вещь конечно в этом смысле
|
|||
13
Sammo
25.01.13
✎
09:38
|
Для начала - оптимизировать для чего? Для вашей базы на текущий момент это проблема?
+ Что за запрос (типовой или ваш), какие условия накладываются? |
|||
14
НафНаф
25.01.13
✎
09:38
|
(6) да, да и когда простой тип меняется на составной условия на пустые ссылки перестают работать
|
|||
15
Maxus43
25.01.13
✎
09:39
|
(11) не будет "соединения с таблицами всех типов документов" зато... я то сам против чесно говоря
|
|||
16
Sammo
25.01.13
✎
09:39
|
(14) Здесь тип уже составной. Хотя это отдельный вопрос - нет ли там пустых ссылок вместо неопределено :)
|
|||
17
Maxus43
25.01.13
✎
09:41
|
(16) в РБ кстати норм сделали, если субконто составного типа то в модуле регистра принудительно неопределено ставили, чтоб случайно не случился разрыв по субконто, если пустую ссылку фиганут
|
|||
18
H A D G E H O G s
25.01.13
✎
09:42
|
(17) 1с заботится о прогерах как только может
|
|||
19
НафНаф
25.01.13
✎
09:44
|
(18) ага, сначала расставляет грабли - потом мужественно их же собирает ))
|
|||
20
Maxus43
25.01.13
✎
09:45
|
(18) скорее о психике бухгалтеров, когда они в оборотке увидят разрывы по Пустым полям
|
|||
21
H A D G E H O G s
25.01.13
✎
09:45
|
(19) Это естественный отбор совсем нежизнеспособных дятлов.
|
|||
22
Defender aka LINN
25.01.13
✎
09:48
|
(0) Соединение какбе будет и так только с реально используемыми таблицами.
|
|||
23
pmb
25.01.13
✎
09:50
|
(22) профайлер говорит обратное
|
|||
24
cw014
25.01.13
✎
10:03
|
Это у тебя еще по божески. Вот у кривых рук некой организации был тип значения у ПВХ - документ ссылка.
А запрос был такой "ВЫБРАТЬ * ИЗ РегистрСведений.Такойто ГДЕ Измерение = ПВХ.Такойто И Ресурс.Проведен" Ой после такого запроса как в КА висло проведение любого документа, ой как висло. На 30 минут, каждый А кодик у этих криворуких друзей был закрыт (читай без исходного модуля). По шишкам получил программист, а контора непричем, и в обратной связи через сутки после происшествия написали - "нашли ошибку, исправим в следующей версии, которая выйдет через 2 месяца" Так что думай... :) |
|||
25
Sammo
25.01.13
✎
10:23
|
(22) Фигушки. Со всеми возможными - это всегда при обращении через точку.
|
|||
26
banco
25.01.13
✎
10:26
|
(0) Добавить измерение Дата.
|
|||
27
H A D G E H O G s
25.01.13
✎
10:54
|
(26) Ахиренно. Это пять!
|
|||
28
acsent
25.01.13
✎
10:57
|
соединение по кластерному индексу вообщето не дорогая операция. Если конечно таблиц не более 256
|
|||
29
banco
25.01.13
✎
11:07
|
(27) и что тебе не понравилось?
|
|||
30
banco
25.01.13
✎
11:10
|
(27) При необходимости жертвуйте компактностью хранения данных ради производительности. Если в запросе вам понадобилось значение, полученное через ссылку, то, возможно, это значение можно хранить непосредственно в данном объекте. Например, если при работе с регистром вам требуется информация о дате регистратора, вы можете завести в регистре соответствующий реквизит и назначать ему значение при проведении документов. Это приведет к дублированию информации и некоторому (незначительному) увеличению ее объема, но может существенно повысить производительность и стабильность работы запроса.
|
|||
31
pmb
25.01.13
✎
12:33
|
(26) план запроса по разному строиться. У меня это Nested Loops
|
|||
32
acsent
25.01.13
✎
12:36
|
(30) если нужно отбор делать по дате, то конечно нужно выводить + индексы, а так смысла мало
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |