|
Уточнение по оптимизации запроса | ☑ | ||
---|---|---|---|---|
0
yolops
15.01.14
✎
12:28
|
Здравствуйте. У меня есть два варианта запроса. Подскажите какй из них оптимальнее?
1) Выбрать РезервыПоЗаказам.Заказ, РезервыПоЗаказам.Резерв, СатусыПроверки.Проверено Из РегистрНакопления.РезервыПоЗаказам.Остатки() КАК РезервыПоЗаказам ЛЕВОЕ СОЕДИНЕНИЕ(ВЫБРАТЬ СатусыПроверкиДокументов.Документ, СатусыПроверкиДокументов.Проверено ИЗ РегистрСведений.СатусыПроверкиДокументов КАК СтатусыПроверкиДокументов ГДЕ СатусыПроверкиДокументов.ВидПроверки = &Проверка1) КАК СатусыПроверки ПО ПроизводствоНоменклатурыОстатки.Заказ = СатусыПроверки.Документ и второй вариант: ВЫБРАТЬ СатусыПроверкиДокументов.Документ, СатусыПроверкиДокументов.Проверено ПОМЕСТИТЬ СатусыПроверки ИЗ РегистрСведений.СатусыПроверкиДокументов КАК СтатусыПроверкиДокументов ГДЕ СатусыПроверкиДокументов.ВидПроверки = &Проверка1; /////////////////////////////////////////////////// Выбрать РезервыПоЗаказам.Заказ, РезервыПоЗаказам.Резерв, СатусыПроверки.Проверено Из РегистрНакопления.РезервыПоЗаказам.Остатки() КАК РезервыПоЗаказам ЛЕВОЕ СОЕДИНЕНИЕ СатусыПроверки КАК СатусыПроверки ПО РезервыПоЗаказам.Заказ = СатусыПроверки.Документ |
|||
1
Starhan
15.01.14
✎
12:29
|
тестируй с замером производительности.
|
|||
2
Ненавижу 1С
гуру
15.01.14
✎
12:30
|
Выбрать
РезервыПоЗаказам.Заказ, РезервыПоЗаказам.Резерв, СатусыПроверки.Проверено Из РегистрНакопления.РезервыПоЗаказам.Остатки() КАК РезервыПоЗаказам ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СатусыПроверкиДокументов КАК СтатусыПроверки ПО ПроизводствоНоменклатурыОстатки.Заказ = СатусыПроверки.Документ И СатусыПроверкиДокументов.ВидПроверки = &Проверка1 |
|||
3
МихаилМ
15.01.14
✎
12:32
|
исправьте "Сатусы"
|
|||
4
yolops
15.01.14
✎
12:38
|
(1)та там каждый раз новое время показывает
(3)извините, опечатался |
|||
5
yolops
15.01.14
✎
12:39
|
(2) А если мне во втором запросе, еще и сгруппировать данные надо?
|
|||
6
Ненавижу 1С
гуру
15.01.14
✎
12:43
|
(5) группируй, в (0) этого не было, но я не против
|
|||
7
MadHead
15.01.14
✎
12:48
|
(0) тебе как начинающему, проще будет взять за правило не писать вложенные запросы, а все делать через временные таблицы и строить в них индекс по полям соединений и условий. Этот подход в подавляющем большинстве случаев позволит написать оптимальный запрос
|
|||
8
yolops
15.01.14
✎
12:50
|
но все же, как происходит выборка данных в 1-м и 2-м вариантах. В 1-м варианте понятно, выбираются все записи, а вот как во 2-м? Сначала выбираются все записи, или же только те что подходят по условию соединения?
|
|||
9
MadHead
15.01.14
✎
12:59
|
(8) Выбираются все записи в обоих случаях. Иногда оптимизатор в случае "ненужной" выборки в вложенном запросе, может ее убрать.
|
|||
10
yolops
15.01.14
✎
13:00
|
(9) спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |