Имя: Пароль:
1C
1С v8
Условия в запросе через точку
,
0 iithethethe
 
20.09.12
15:17
Как правильно?

"ВЫБРАТЬ
|    Таб.Номенклатура
|ИЗ
|    Регистр.Остатки КАК Таб
|ГДЕ
|    Таб.Склад.Ответственный = &Ответственный"
   
   
"ВЫБРАТЬ
|    Таб.Номенклатура
|ИЗ
|    Справочник.Склад КАК Склад
|        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Таб КАК Таб
|        ПО Склад.Ссылка = Таб.Склад
|ГДЕ
|    Склад.Ответственный = &Ответственный"
1 mikecool
 
20.09.12
15:19
пох
2 ДенисЧ
 
20.09.12
15:20
В данном примере - эквипенисуально
3 rotting
 
20.09.12
15:20
в SQL все равно преобразует во второй запрос
4 Jofa
 
20.09.12
15:20
1 вариант производительнее
5 Сергей Д
 
20.09.12
15:21
Все равно
6 ДенисЧ
 
20.09.12
15:21
(4) неа
7 ДенисЧ
 
20.09.12
15:21
хотя... Первый - это ВНУТРЕННЕЕ, второй ВНЕШНЕЕ...
Так чт запросы-то разные...
8 andrewks
 
20.09.12
15:21
(4) бугага
9 Feanorko
 
20.09.12
15:21
что в (4) было? :)
10 andrewks
 
20.09.12
15:22
(7) с чего это 1-й - внутреннее?
11 ДенисЧ
 
20.09.12
15:22
(10) Ты ещё скажи, что внешний...
12 Vakhrin
 
20.09.12
15:22
если говорить о производительности, то применяйте условия в параметрах виртуальных таблиц
13 andrewks
 
20.09.12
15:22
(11) левое
14 IronDemon
 
20.09.12
15:23
А так?

ВЫБРАТЬ
   ТоварыНаСкладахОстатки.Номенклатура,
   ТоварыНаСкладахОстатки.КоличествоОстаток
ИЗ
   РегистрНакопления.ТоварыНаСкладах.Остатки(
           ,
           Склад В
               (ВЫБРАТЬ
                   Склады.Ссылка
               ИЗ
                   Справочник.Склады КАК Склады
               ГДЕ
                   Склады.Подразделение = &Подразделение)) КАК ТоварыНаСкладахОстатки
15 Feanorko
 
20.09.12
15:23
(14) а так - 21 см :)
16 IronDemon
 
20.09.12
15:24
:)
17 andrewks
 
20.09.12
15:25
(15) за что сантиметр срезал?
18 Jofa
 
20.09.12
15:26
21 см это круто? :)
19 Feanorko
 
20.09.12
15:27
(17) для 22 см этого мало, нужно в совершенстве знать sql и вёб-сервисы
(18) 21 - это очень не плохо
20 Vakhrin
 
20.09.12
15:27
(17) наверное за то, что не описана необходимость поставить индексацию на поле Подразделение справочника Склады ))
21 iithethethe
 
20.09.12
15:31
(3) от куда инфа?

В данном примере РегистрСведений, виртуальные не пользуем
22 IronDemon
 
20.09.12
15:32
(0) Все неправильно. Нужно в условиях ВТ условие давать.
23 iithethethe
 
20.09.12
15:35
ВТ создает физическую таблицу (в tempdb, вроде как), помоему это рационально если в ВТ загружаются более 2000 тыс строк чтобы построить индексы
24 ДенисЧ
 
20.09.12
15:35
(13) А левое это не внешнее?
Если сделать лефт лжойн, в результате не может получиться нуллов?
25 andrewks
 
20.09.12
15:37
(24) ты прочти своё (7) _внимательно_
ко мне какие претензии?
26 МастерВопросов
 
20.09.12
15:46
(1)(2) а если в примере из (0) измерение "Таб.Склад" имеет составной тип, то совсем не одно и то же.
27 ДенисЧ
 
20.09.12
15:48
(25) Это ты прочти внимательнее :-) К тебе только одна претензия - невнимательность
28 vmv
 
20.09.12
15:49
(23) у ВТ самый главный плюс - оптимизатор запроса точно знает ее размер при сборке всего запроса, а все ваши вложенные и соединялки не обладают этим преумуществом и оптимизатор СУБД практически не у дел
29 iithethethe
 
20.09.12
15:54
(26) Склад не составной тип


(28), размер ему нужен для того, чтобы план запроса сделать, то есть выбирать индексами или сканировать, в зависимости от кол-ва строк, вроде до 2000 он сканирует
30 andrewks
 
20.09.12
16:22
(27) в чём моя невнимательность?
Первый - это ВНУТРЕННЕЕ, второй ВНЕШНЕЕ..

первый - там, где используется неявное соединение, 2-й - там, где явное.

т.е. ты хочешь сказать, что в случае неявного соединения запрос преобразуется в inner join, хотя это не так, оно преобразуется в left OUTER join