|
Какой запрос быстрее? | ☑ | ||||||
|---|---|---|---|---|---|---|---|---|
|
0
PsyTech
19.07.13
✎
10:59
|
Всем привет!
Какой запрос быстрее? Вариант1: ВЫБРАТЬ РегистрСв.UID, МАКСИМУМ(ВЫБОР КОГДА РегистрСв.ИмяРеквизита = "Реквизит1" ТОГДА РегистрСв.Значение КОНЕЦ) КАК Реквизит1, МАКСИМУМ(ВЫБОР КОГДА РегистрСв.ИмяРеквизита = "Реквизит2" ТОГДА РегистрСв.Значение КОНЕЦ) КАК Реквизит2, МАКСИМУМ(ВЫБОР КОГДА РегистрСв.ИмяРеквизита = "Реквизит3" ТОГДА РегистрСв.Значение КОНЕЦ) КАК Реквизит3 ИЗ РегистрСведений.РегистрСв КАК РегистрСв ГДЕ (РегистрСв.ИмяРеквизита = "Реквизит1" ИЛИ РегистрСв.ИмяРеквизита = "Реквизит2" ИЛИ РегистрСв.ИмяРеквизита = "Реквизит3") СГРУППИРОВАТЬ ПО РегистрСв.UID Вариант2: ВЫБРАТЬ РегистрСв1.UID, РегистрСв1.Значение КАК Реквизит1, РегистрСв2.Значение КАК Реквизит2, РегистрСв3.Значение КАК Реквизит3 ИЗ РегистрСведений.РегистрСв КАК РегистрСв1 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РегистрСв КАК РегистрСв2 ПО (РегистрСв2.ИмяРеквизита = "Реквизит2") И РегистрСв1.UID = РегистрСв2.UID ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РегистрСв КАК РегистрСв3 ПО (РегистрСв3.ИмяРеквизита = "Реквизит3") И РегистрСв1.UID = РегистрСв3.UID ГДЕ РегистрСв1.ИмяРеквизита = "Реквизит1" |
|||||||
|
7
Fragster
гуру
19.07.13
✎
11:03
|
я за 1
Вариант1 |
|||||||
|
21
Полотенчик
19.07.13
✎
11:12
|
(2) Я думаю если бы ИЛИ было по разным полям (даже если они были проиндексированы - например, ИЛИ по первому и второму по порядку измерениям регистра), то индекс не использовался, а т.к. здесь ИЛИ по одному и тому же полю, то нет оснований не использовать индекс.
Вариант1 |
|||||||
|
34
RTFM_D
19.07.13
✎
13:13
|
.
Вариант1 |
| Форум | Правила | Описание | Секции | Поиск |