|
Просвятите немного по запроса | ☑ | ||
---|---|---|---|---|
0
DrHiHi
25.04.13
✎
17:02
|
Вообщем заметил такой прикол...
по сути 2 идентично простых запроса, но один из них выполняется пару секунд, а другой больше 5 минут Запрос №1 (выполняется больше 5 минут) ВЫБРАТЬ Ссылка КАК Склад ПОМЕСТИТЬ ВТДоступныеСклады ИЗ Справочник.Склады ГДЕ Ссылка В (&Склады) ; //////////////////////////////////////////////////////////////////////ВЫБРАТЬ РАЗРЕШЕННЫЕ ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки( , НЕ Склад В (ВЫБРАТЬ ВТДоступныеСклады .Склад ИЗ ВТДоступныеСклады)) КАК ТоварыВРезервеНаСкладахОстатки Запрос №2 (выполняется за пару секунд) ВЫБРАТЬ РАЗРЕШЕННЫЕ ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки( , НЕ Склад В (ВЫБРАТЬ Ссылка КАК Склад ИЗ Справочник.Склады ГДЕ Ссылка В (&Склады)) КАК ТоварыВРезервеНаСкладахОстатки в чем подвох?? возможно из-за платформы (1С:Предприятие 8.2 (8.2.16.352))?? база относительно не маленькая. P.S. Прошу не писать тупизма типа "Почему в параметрах не написать "НЕ Склад В (&Склады)"??". Задачи разные и есть прикол в том, что склады вычисляются, а потом нужно определить остатки по всем складам, кроме определенных. в основном весь резерв валяется на "НЕ Склад В (&Склады)" работает быстро "Склад В (ВЫБРАТЬ ВТДоступныеСклады.Склад ИЗ ВТДоступныеСклады)" работает быстро, а вот с приставкой "НЕ" тупит по страшному |
|||
1
Fragster
гуру
25.04.13
✎
17:04
|
посмотри в план запроса
|
|||
2
DrHiHi
25.04.13
✎
17:04
|
(1) в смысле??
|
|||
3
Нуф-Нуф
25.04.13
✎
17:04
|
добавь индексирование в пакет первого запроса
|
|||
4
Fragster
гуру
25.04.13
✎
17:06
|
в прямом. а еще можно
ВЫБРАТЬ Ссылка КАК Склад ПОМЕСТИТЬ ВТДоступныеСклады ИЗ Справочник.Склады ГДЕ Не Ссылка В (&Склады) и во втором запросе Не убрать |
|||
5
DrHiHi
25.04.13
✎
17:06
|
(3) помогло))) спс. но все равно как-то не понятно
|
|||
6
lapinio
25.04.13
✎
17:06
|
Может быть тупит из временной таблицы. В место временной сделать в первом запросе вложенный запрос в параметрах регистра!
|
|||
7
DrHiHi
25.04.13
✎
17:06
|
(4) в том то и дело, что первую часть запроса менять не нужно, там написано совсем другое... я написал справочник для примера
|
|||
8
DrHiHi
25.04.13
✎
17:07
|
(6) смотри (3) индексация помогла
|
|||
9
zak555
25.04.13
✎
17:09
|
а так нельзя написать?
ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки( , НЕ Склад В (&Склады) ) КАК ТоварыВРезервеНаСкладахОстатки |
|||
10
DrHiHi
25.04.13
✎
17:12
|
(9) вроде бы написал для одаренных "P.S. Прошу не писать тупизма типа "Почему в параметрах не написать "НЕ Склад В (&Склады)"??". Задачи разные и есть прикол в том, что склады вычисляются, а потом нужно определить остатки по всем складам, кроме определенных. "
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |