|
Условие в запросе вешает запрос
| ☑ |
0
Stim
18.05.15
✎
13:49
|
нужно в запросе отобрать документы по неким параметрым.
пишу что-то типа:
...
Выбрать
ВРТабл.Контрагент,
ВРТабл.Дата,
Поместить КонтрагентыДатыДляОтбора
Из ВРТабл как ВРТабл
;
Выбрать
Реализация.Ссылка КАК Документ
ИЗ Документы.РеализацияТоваровУслуг
ГДЕ
(НачалоПериода(Реализация.Дата), Реализация.Контрагент) В(Выбрать КонтрагентыДатыДляОтбора.Дата,КонтрагентыДатыДляОтбора.Контрагент ИЗ КонтрагентыДатыДляОтбора КАК КонтрагентыДатыДляОтбора)
вот это условие наглухо вешает запрос в базе, где данных-то не так уж много. 10 минут выполнялся запрос и вывел около 200 документов.
Что не так, как ускорить?
|
|
1
Stim
18.05.15
✎
13:49
|
+
НачалоПериода(Реализация.Дата,ДЕНЬ)
|
|
2
Basilio
18.05.15
✎
13:50
|
юзай Временные таблицы
|
|
3
asady
18.05.15
✎
13:51
|
(0) внутреннее соединение ИМХО более оптимально
|
|
4
Гёдза
18.05.15
✎
13:52
|
по дате лучше через между делать. так в индекс попадает
|
|
5
Basilio
18.05.15
✎
13:52
|
+(2) сорри невнимательно прочитал. Данных в ВТ много? Если они слишком большие они будут только тормозить выполнение запроса.
|
|
6
sapphire
18.05.15
✎
13:53
|
(0) Паша, не проще ли вместо столь долбаного условия использовать внутреннее соединение?
|
|
7
sapphire
18.05.15
✎
13:53
|
(3) +1
|
|
8
Stim
18.05.15
✎
13:54
|
сделал через внутреннее соединение. результат = 14сек.
|
|
9
Stim
18.05.15
✎
13:54
|
странно, почему такая разница - 14 сек и 600сек
|
|
10
User_Agronom
18.05.15
✎
13:55
|
(0)
Выбрать
ВРТабл.Контрагент,
ВРТабл.Дата,
Поместить КонтрагентыДатыДляОтбора
Из ВРТабл как ВРТабл
;
Выбрать
Реализация.Ссылка КАК Документ,
НачалоПериода(Реадизация.Дата) как ДеньДокумента,
Реализация.Контрагент
Поместить Реализации
ИЗ Документы.РеализацияТоваровУслуг
;
выбрать
Документ
из Реализации КАК Реализация
ГДЕ
(Реализация.ДеньДокумента, Реализация.Контрагент) В(Выбрать КонтрагентыДатыДляОтбора.Дата,КонтрагентыДатыДляОтбора.Контрагент ИЗ КонтрагентыДатыДляОтбора КАК КонтрагентыДатыДляОтбора)
|
|