![]() |
|
поле через точку или соединение в запросе | ☑ | ||
---|---|---|---|---|
0
Игорь_МММ
04.02.17
✎
16:58
|
просвятите плз что правильнее:
|ВЫБРАТЬ | ЗаказыПокупателейОбороты.Заказ.ДатаПоступления |ИЗ | РегистрНакопления.ЗаказыПокупателей.Обороты( | , | , | , | Контрагент = &Контрагент | И ДоговорКонтрагента = &ДоговорКонтрагента) КАК ЗаказыПокупателейОбороты"; или |ВЫБРАТЬ | ЗаказыПокупателей.ДатаПоступления |ИЗ | РегистрНакопления.ЗаказыПокупателей.Обороты( | , | , | , | Контрагент = &Контрагент | И ДоговорКонтрагента = &ДоговорКонтрагента) КАК ЗаказыПокупателейОбороты | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказыПокупателей КАК ЗаказыПокупателей | ПО ЗаказыПокупателейОбороты.Заказ = ЗаказыПокупателей.Ссылка как бы знаю, что рекомендуется делать по второму варианту, но не пойму почему .. как работает механизм? Ведь при соединении нужно проверить все документы, сколько их бы ни было на соответствие условию соединения, а в первом варианте строго указан уже документ из которого нужно получить поле. Что не верно в моих дилетанских рассуждениях? |
|||
1
H A D G E H O G s
04.02.17
✎
16:59
|
Правильно будет указать период в ВТ
|
|||
2
H A D G E H O G s
04.02.17
✎
17:00
|
Ну или Первые 1.. 10... 100. Зачем тебе столько да?
|
|||
3
Игорь_МММ
04.02.17
✎
17:05
|
(1) (2) вопрос не в этом. что правильно : выбирать через точку или лепить соединение и явно указывать поле - что работает быстрее?
|
|||
4
H A D G E H O G s
04.02.17
✎
17:08
|
(3) Если Измерение Заказ - составное - то быстрее будет Левое соединение, однако лучше ВЫРАЗИТЬ() и тебя не будут проклинать последователи
|
|||
5
Torquader
04.02.17
✎
17:09
|
(3) Оно должно работать одинаково, так как 1С за вас сама вставит соединение.
|
|||
6
Torquader
04.02.17
✎
17:10
|
Быстрее будет, если в регистре хранить дату заказа.
|
|||
7
Игорь_МММ
04.02.17
✎
17:27
|
(5) если бы было так, то не писали бы о неправильности выбора полей через точку. в (0) примеры сваял от балды, не привязывайтесь в РН. Я так понимаю (по Чистову), что если лепишь через точку то вытягиваются какие-то лишние таблицы, что плохо сказыается на производительности. Но я не пойму: если я делаю соединение, то нужно же проверить кучу документов на соответствие условию? - неужели это быстро?
|
|||
8
H A D G E H O G s
04.02.17
✎
17:33
|
(5) Видишь, нет тебе веры. Люди лучше верят в магию.
|
|||
9
Torquader
04.02.17
✎
17:33
|
(7) Если поле составное, то в нём могут быть ссылки на несколько таблиц (объектов базы), когда мы ставим точку, то система выполняет поиск по всем таблицам всех возможных элементов.
Если мы указываем соединение явно, то соединение выполняется только с указанной нами таблицей. |
|||
10
Torquader
04.02.17
✎
17:35
|
(8) Вообще-то, никому нельзя верить на слово, то, что в одном случае окажется правильным, в другом случае - будет наоборот.
Он спросил про конкретный регистр, где заказ - это один документ и одна таблица - там разницы действительно нет. |
|||
11
Игорь_МММ
04.02.17
✎
17:57
|
млин, пока пытался сформулировать уточняющий вопрос , сам понял ответ. Спасибо, разобрался .. а ведь ночей не спал ))
|
|||
12
Torquader
04.02.17
✎
18:03
|
(11) Главное, пытаться понять, как оно устроено на низком уровне, тогда половина остальных вопросов снимается.
Удачи вам. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |