Имя: Пароль:
1C
1С v8
Подскажите еще плиз, по оптимальности запроса
,
0 ИсчадиеADO
 
09.04.14
15:47
я ведь правильно понимаю, что

ВЫБРАТЬ
  *
ИЗ
  МояТаблица
ГДЕ
  МояТаблица.Реквизит = &Ссылка
  И ВЫБОР КОГДА &Ссылка = ЗНАЧЕНИЕ(Справочник.МойСправочник.ПустаяСсылка)
    ТОГДА ЛОЖЬ
    ИНАЧЕ ИСТИНА
  КОНЕЦ

оптимальнее чем

ВЫБРАТЬ
  *
ИЗ
  МояТаблица
ГДЕ
  ВЫБОР КОГДА &Ссылка = ЗНАЧЕНИЕ(Справочник.МойСправочник.ПустаяСсылка)
    ТОГДА ЛОЖЬ
    ИНАЧЕ МояТаблица.Реквизит = &Ссылка
  КОНЕЦ

?
1 Chai Nic
 
09.04.14
15:50
С чего это? Думаете, оптимизатор запросов настолько тупой, что не сможет применить индекс при условии внутри ВЫБОР КОГДА?
2 ИсчадиеADO
 
09.04.14
15:51
(1) не знаю, потому и спрашиваю
3 Maxus43
 
09.04.14
15:51
имхо - нет, 2-й лучше.
Хотя надо смотреть план запроса, а то это сферический запрос в вакууме
4 butterbean
 
09.04.14
15:52
а че не
ГДЕ МояТаблица.Реквизит = &Ссылка
И МояТаблица.Реквизит <> ЗНАЧЕНИЕ(Справочник.МойСправочник.ПустаяСсылка)
5 ИсчадиеADO
 
09.04.14
15:53
(4) вариант :)

(3) дык это в скуль нужно лезть, время...
6 _fvadim
 
09.04.14
15:56
Объясните дурачку зачем пихать ВЫБОР в ГДЕ ?
7 butterbean
 
09.04.14
15:58
(6) чтобы отобрать нужные записи из таблицы
8 _fvadim
 
09.04.14
16:02
(7) это я понял. чем оно лучше (4) ?
9 _fvadim
 
09.04.14
16:02
Я реально первый раз такое вижу, даж не знал, что так можно.
10 _fvadim
 
09.04.14
16:18
Прикольно. Работает.
Буду использовать, если нужно будет ещё сильнее уменьшить читаемость запросов :)