Имя: Пароль:
1C
1С v8
варианты запроса в УПП
0 prog01
 
27.09.12
12:52
ВЫБРАТЬ
   ПартииТоваровНаСкладахОстатки.Номенклатура,
   ПартииТоваровНаСкладахОстатки.Склад,
   ПартииТоваровНаСкладахОстатки.ХарактеристикаНоменклатуры,
   ПартииТоваровНаСкладахОстатки.СерияНоменклатуры,
   ПартииТоваровНаСкладахОстатки.ДокументОприходования,
   ПартииТоваровНаСкладахОстатки.СтатусПартии,
   ПартииТоваровНаСкладахОстатки.Заказ,
   ПартииТоваровНаСкладахОстатки.Качество,
   ПартииТоваровНаСкладахОстатки.Организация,
   ПартииТоваровНаСкладахОстатки.КоличествоОстаток,
   ПартииТоваровНаСкладахОстатки.СтоимостьОстаток
ИЗ
   РегистрНакопления.ПартииТоваровНаСкладах.Остатки(, ) КАК ПартииТоваровНаСкладахОстатки
ГДЕ
   ПартииТоваровНаСкладахОстатки.ХарактеристикаНоменклатуры В
           (ВЫБРАТЬ
               ЗначенияСвойствОбъектов.Объект
           ИЗ
               РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
           ГДЕ
               ЗначенияСвойствОбъектов.Свойство = &Свойство
               И ЗначенияСвойствОбъектов.Значение = &Значение)

10 сек.


ВЫБРАТЬ
   ПартииТоваровНаСкладахОстатки.Номенклатура,
   ПартииТоваровНаСкладахОстатки.Склад,
   ПартииТоваровНаСкладахОстатки.ХарактеристикаНоменклатуры,
   ПартииТоваровНаСкладахОстатки.СерияНоменклатуры,
   ПартииТоваровНаСкладахОстатки.ДокументОприходования,
   ПартииТоваровНаСкладахОстатки.СтатусПартии,
   ПартииТоваровНаСкладахОстатки.Заказ,
   ПартииТоваровНаСкладахОстатки.Качество,
   ПартииТоваровНаСкладахОстатки.Организация,
   ПартииТоваровНаСкладахОстатки.КоличествоОстаток,
   ПартииТоваровНаСкладахОстатки.СтоимостьОстаток
ИЗ
   РегистрНакопления.ПартииТоваровНаСкладах.Остатки(, ) КАК ПартииТоваровНаСкладахОстатки
ГДЕ
   ПартииТоваровНаСкладахОстатки.ХарактеристикаНоменклатуры В
           (ВЫБРАТЬ
               ЗначенияСвойствОбъектов.Объект
           ИЗ
               РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
           ГДЕ
               ЗначенияСвойствОбъектов.Свойство = &Свойство
               И ЗначенияСвойствОбъектов.Значение = &Значение)

150 сек

отлельные запросы по обоим регистрам без отборов меньше секунды

какие будут мнения?
1 ДенисЧ
 
27.09.12
12:54
а чем запросы отличются?
2 Kreont
 
27.09.12
12:54
(0) И где найти 10 отличий, хоть подскажи?
3 pessok
 
27.09.12
12:55
и правда.... они идентичные
4 prog01
 
27.09.12
12:58
извините сейчас сообщу тот который дольше исполняется
упп по этим регистрам типовое кстати
5 prog01
 
27.09.12
12:58
вот долгий вариант:

ВЫБРАТЬ
   ПартииТоваровНаСкладахОстатки.Номенклатура,
   ПартииТоваровНаСкладахОстатки.Склад,
   ПартииТоваровНаСкладахОстатки.ХарактеристикаНоменклатуры,
   ПартииТоваровНаСкладахОстатки.СерияНоменклатуры,
   ПартииТоваровНаСкладахОстатки.ДокументОприходования,
   ПартииТоваровНаСкладахОстатки.СтатусПартии,
   ПартииТоваровНаСкладахОстатки.Заказ,
   ПартииТоваровНаСкладахОстатки.Качество,
   ПартииТоваровНаСкладахОстатки.Организация,
   ПартииТоваровНаСкладахОстатки.КоличествоОстаток,
   ПартииТоваровНаСкладахОстатки.СтоимостьОстаток
ИЗ
   РегистрНакопления.ПартииТоваровНаСкладах.Остатки(
           ,
           ХарактеристикаНоменклатуры В
               (ВЫБРАТЬ
                   ЗначенияСвойствОбъектов.Объект
               ИЗ
                   РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
               ГДЕ
                   ЗначенияСвойствОбъектов.Свойство = &Свойство
                   И ЗначенияСвойствОбъектов.Значение = &Значение)) КАК ПартииТоваровНаСкладахОстатки
6 Maxus43
 
27.09.12
13:08
поидее (5) должно быть быстрей, но видимо неправильный план запроса выбирает.
Я бы соединением попробовал,
Отобрать сначала характеристики, потом соеденить с партиями
7 Odavid
 
27.09.12
13:18
а никому не судьба подумать, что вместо конкретного условия в ВТ "Остатки" создается отдельное соединение с таблицами (и своими условиями), после чего они наконец-то попадают в условия ВТ? И это огромный торомз всего запроса.
Параметры ВТ сделаны не для того, чтобы в них еще и вложенным запросом получать что-либо, а чтобы непосредственно в ВТ отобрать сразу по полям необходимое и уже резко уменьшенные в объеме таблицы соединять между собой, а не сначала соединять между сосбой гигантские таблицы, чтобы в конце на полученный результат наложить условия ГДЕ.
8 MadHead
 
27.09.12
13:22
(5) Замени вложенный запрос на временную таблицу. Которую проиндексируй по полю
ЗначенияСвойствОбъектов.Объект
9 prog01
 
27.09.12
13:33
(6)< cекундs получилось, хотя странно, но спасибо )))
(8)а разве там платформа не генерит индекс по ведущему измерению регистра?
(7)"а чтобы непосредственно в ВТ отобрать сразу по полям необходимое " ну?
10 prog01
 
27.09.12
13:33
cекундs = секунды одной
11 ILM
 
гуру
27.09.12
14:01
(0) Я правильно понял, что ищете остатки номенклатуры с заданными свойствами в характеристиках?
Советую сначала выбрать номенклатуру и характеристики, а потом по этим записям уже выбирать остатки.
12 MadHead
 
27.09.12
14:15
(9) генерит, но не там. Тот индекс влияет только на выполнение вложенного запроса. А потом еще идет многократный поиск элемента в результате вложенного запроса в котором индексов уже нет
13 Odavid
 
27.09.12
14:30
(9)гну.
>>а разве там платформа не генерит индекс по ведущему измерению регистра?
еще один, прочитавший только агитки 1с...
14 prog01
 
27.09.12
15:03
(11)ок
(13)какая гадость эта ваша заливная рыба...
в который раз убеждаюсь что чуть только данных поболее так сразу всё самому делать
(12)короче и скуль тоже г... вместе со своими планами выполнения
15 Odavid
 
27.09.12
15:44
(9) т.е. не знаем, для чего устанавливается "по ведущему измерению регистра"?
(13) >>Тот индекс влияет только на выполнение вложенного запроса.
какой из 1скиных "индексов" - "тот индекс"?
16 MadHead
 
27.09.12
16:05
(15) Прямое назначение конечно не индексировать, а не хранить лишние данные в регистре сведений. Но так же свойство "Ведущее" у измерения регистра сведений включает индексирование измерения.
17 Odavid
 
27.09.12
16:41
(16) тогда посмотрите табличку "индексов" от 1С, когда и при каких условиях они создаются. А также - что из себя представляют такие "индексы".
И найдите, что создается индекс на измерение благодаря установке "Ведущее".
А не бестолковую (в плане улучшения производительности) постановку такого измерения на первое место (т.е. что установка "Индексировать" для измерения, что - Ведущее - одинаково в плане "индексации") в череде всех измерений регистра, да и то только для РС.
18 prog01
 
27.09.12
16:44
(17)ну и что?
19 Odavid
 
27.09.12
16:47
(18) а ничего.
учитесь лучше и качественней.
Хотя разложение 1с-ников уже не остановить...
20 prog01
 
27.09.12
18:16
(19)спасибо кэп )
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой