|
Условия в запросе через точку | ☑ | ||
---|---|---|---|---|
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 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |