Имя: Пароль:
1C
1С v8
Помочь оптимизировать запрос
0 dfaa
 
30.07.11
12:15
есть запрос

//////////////////////////////////////////////////////
ВЫБРАТЬ
   ЗначенияСвойствОбъектов.Значение КАК Акция,
   ЗначенияСвойствОбъектов.Объект
ПОМЕСТИТЬ Акция
ИЗ
   РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
   ЗначенияСвойствОбъектов.Объект = &Объект
   И ЗначенияСвойствОбъектов.Свойство.Наименование = "Акция"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЗначенияСвойствОбъектов.Значение КАК Новинка,
   ЗначенияСвойствОбъектов.Объект
ПОМЕСТИТЬ Новинка
ИЗ
   РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
   ЗначенияСвойствОбъектов.Объект = &Объект
   И ЗначенияСвойствОбъектов.Свойство.Наименование = "Новинка"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЗначенияСвойствОбъектов.Значение КАК ХитПродаж,
   ЗначенияСвойствОбъектов.Объект
ПОМЕСТИТЬ ХитПродаж
ИЗ
   РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
   ЗначенияСвойствОбъектов.Объект = &Объект
   И ЗначенияСвойствОбъектов.Свойство.Наименование = "Хит продаж"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЗначенияСвойствОбъектов.Значение,
   ЗначенияСвойствОбъектов.Объект
ПОМЕСТИТЬ Цена
ИЗ
   РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
   ЗначенияСвойствОбъектов.Объект = &Объект
   И ЗначенияСвойствОбъектов.Свойство.Наименование = "Последняя цена"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЕСТЬNULL(Акц.Акция, ЛОЖЬ) КАК Акция,
   ЕСТЬNULL(Новин.Новинка, ЛОЖЬ) КАК Новинка,
   ЕСТЬNULL(ХитПрод.ХитПродаж, ЛОЖЬ) КАК ХитПродаж,
   ЕСТЬNULL(Цена.Значение, ЛОЖЬ) КАК ПоследняяЦена
ИЗ
   Акция КАК Акц
       ЛЕВОЕ СОЕДИНЕНИЕ Новинка КАК Новин
       ПО Акц.Объект = Новин.Объект
       ЛЕВОЕ СОЕДИНЕНИЕ ХитПродаж КАК ХитПрод
       ПО Акц.Объект = ХитПрод.Объект
       ЛЕВОЕ СОЕДИНЕНИЕ Цена КАК Цена
       ПО Акц.Объект = Цена.Объект
/////////////////////////////////////////////////////////

Скорость выполнения запроса 0,5 сек. как его оптимизировать до выполнения хотя бы 0.2 сек ?
1 Reaper_1c
 
30.07.11
12:19
Солько записей во временных таблицах?
2 dfaa
 
30.07.11
12:31
порядка 50 000 в каждой
3 Prikum
 
30.07.11
12:36
(2) А индексировать таблицы кто будет?
4 Prikum
 
30.07.11
12:37
(0) и что за убогость " И ЗначенияСвойствОбъектов.Свойство.Наименование = "Последняя цена" "?
5 dfaa
 
30.07.11
12:45
(4) если есть предложения напиши конкретно что бы ты изменил, рассмотрю любой вариант
6 Prikum
 
30.07.11
12:46
(5) Я тебе уже все предложения выложил или ты хочешь чтобы я за тебя переписал запрос?
7 Prikum
 
30.07.11
12:47
+(6) в (4) было, что так обычно не пишут, только го_в_нокодеры, сам подумай, что будет, если какая то зараза случайно поменяет наименование?
8 rs_trade
 
30.07.11
12:50
+(7) кошерно делать реквизит с видом, например перечисления со значениями, акция, херакция. и выбирать по нему.
9 dfaa
 
30.07.11
12:50
(7) по поводу индексирования таблиц не совсем тебя понимаю. не подскажешь где можно за это почитать, или как в запросе это сделать
10 Prikum
 
30.07.11
12:52
(9) Типа СП забанен? Или ты не знаешь про "ИНДЕКСИРОВАТЬ ПО" для временных таблиц? Может быть тогда конструктор поможет?
11 rs_trade
 
30.07.11
12:53
(0) а нафига вообще тебе дались эти 0.3 сек?
12 dfaa
 
30.07.11
12:53
(10) да не совсем знаком с "индексировать по"
13 Злопчинский
 
30.07.11
12:54
(11) да он запрос в цикле крутит наверное...
14 Prikum
 
30.07.11
12:55
(11) Это сейчас 0.3, а что будет потом?
15 Prikum
 
30.07.11
12:55
(13) 5 баллов, тоже об этом подумал.
16 Prikum
 
30.07.11
12:56
(12) Открой конструктор запросов и все поймешь или ты просто не знаешь, что такое индексы и для чего они нужны?
17 dfaa
 
30.07.11
13:02
(16) индексировать нужно каждое поле или только номер строки ?
18 Reaper_1c
 
30.07.11
13:03
(17) индексировать нужно поля, по которым построено условие соединения.
19 Reaper_1c
 
30.07.11
13:04
И от цикла избавься. Или запрос не ты писал?
20 Prikum
 
30.07.11
13:06
(17) Где ты у себя увидел номер строки? в (18) все сказали.
21 Reaper_1c
 
30.07.11
13:09
Сижу вот я и думаю, что станет его запрос долше с инексами выполняться... нужно не индексы накладывать а цикл выпиливать  быстро, решительно.
22 0xFFFFFF
 
30.07.11
13:09
А цикл да, нужно убирать.
23 Prikum
 
30.07.11
13:10
(21) а где вы там цикл увидели?Пока это только догадки
24 0xFFFFFF
 
30.07.11
13:11
Причем там делов то скорее всего
Заменить
ЗначенияСвойствОбъектов.Объект = &Объект
на
ЗначенияСвойствОбъектов.Объект В (&СпОбъектов)

Даже если потом алгоритм в цикле какой то супернавороченный - проще слить результат запроса по списку объектов в МенеджерВременныхТаблиц и работать с ним.
25 0xFFFFFF
 
30.07.11
13:11
И еще  нафига соединения по Объект, если Объект один?
26 0xFFFFFF
 
30.07.11
13:12
Короч, запрос в топку
27 Prikum
 
30.07.11
13:13
(26) там вообще помоему вырвали кусок кода
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.