Имя: Пароль:
1C
1С v8
Глюки запроса, как такое может быть?
0 Miss1C
 
17.04.13
18:02
Один и тот же запрос выполняется по разному. Утром полторы секунды, вечером 200+ секунд, время замеряла, замером.

СписокТоваров = ТаблицаТоваров.ВыгрузитьКолонку(РеквизитТовара);
   
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("Дата", ДатаИтогов);
   Запрос.УстановитьПараметр("ТаблицаТоваров", ТаблицаТоваров);
   Запрос.УстановитьПараметр("СписокТоваров", СписокТоваров);
   Запрос.УстановитьПараметр("ЦенаСНДС", ЦеныСНДС);
   Запрос.УстановитьПараметр("ВидДоговора", Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком);
   
   ТекстЗапроса = "ВЫБРАТЬ Товары."+РеквизитТовара+" КАК Номенклатура,
   |    Товары."+РеквизитЦены+" КАК ЦенаПродажи
   |ПОМЕСТИТЬ ТаблицаТоваров
   |ИЗ &ТаблицаТоваров КАК Товары
   |"+?(Константы.КонтролироватьНаценкуПриОтгрузке.Получить(),"","ГДЕ 1=2")+"
   |;
   |
   |ВЫБРАТЬ
   |    ПериодыЦен.Номенклатура,
   |    ВЫБОР КОГДА не &ЦенаСНДС ТОГДА МАКСИМУМ(ЕСТЬNULL(ПоследниеЦеныЗакупокСрезПоследних.ЦенаБезНДС, 0))
   |        ИНАЧЕ МАКСИМУМ(ЕСТЬNULL(ПоследниеЦеныЗакупокСрезПоследних.ЦенаСНДС, 0))
   |    КОНЕЦ КАК ЦенаЗакупки
   |ПОМЕСТИТЬ ЦеныЗакупки
   |ИЗ
   |    (ВЫБРАТЬ
   |        ТаблицаТоваров.Номенклатура КАК Номенклатура,
   |        МАКСИМУМ(ПоследниеЦеныЗакупокСрезПоследних.Период) КАК Период
   |    ИЗ
   |        ТаблицаТоваров КАК ТаблицаТоваров
   |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПоследниеЦеныЗакупок.СрезПоследних(&Дата, ВидДоговора = &ВидДоговора) КАК ПоследниеЦеныЗакупокСрезПоследних
   |            ПО ТаблицаТоваров.Номенклатура = ПоследниеЦеныЗакупокСрезПоследних.Номенклатура
   |    
   |    СГРУППИРОВАТЬ ПО
   |        ТаблицаТоваров.Номенклатура) КАК ПериодыЦен
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПоследниеЦеныЗакупок.СрезПоследних(&Дата, ВидДоговора = &ВидДоговора) КАК ПоследниеЦеныЗакупокСрезПоследних
   |        ПО ПериодыЦен.Номенклатура = ПоследниеЦеныЗакупокСрезПоследних.Номенклатура
   |            И ПериодыЦен.Период = ПоследниеЦеныЗакупокСрезПоследних.Период
   |
   |СГРУППИРОВАТЬ ПО
   |    ПериодыЦен.Номенклатура
   |
   |;
   |
   |ВЫБРАТЬ Товары.Номенклатура КАК Номенклатура,
   |    Товары.ЦенаПродажи КАК ЦенаПродажи,
   |    ЦеныЗакупки.ЦенаЗакупки КАК ЦенаЗакупки,
   |    ВЫБОР КОГДА ЕстьNull(ЦеныЗакупки.ЦенаЗакупки,0) = 0 ТОГДА 999999999
   |            ИНАЧЕ (Товары.ЦенаПродажи-ЦеныЗакупки.ЦенаЗакупки)/ЦеныЗакупки.ЦенаЗакупки*100
   |    КОНЕЦ КАК Наценка
   |ИЗ ТаблицаТоваров КАК Товары
   |    ЛЕВОЕ СОЕДИНЕНИЕ ЦеныЗакупки КАК ЦеныЗакупки
   |        ПО Товары.Номенклатура = ЦеныЗакупки.Номенклатура
   |ГДЕ ЕстьNull(ЦеныЗакупки.ЦенаЗакупки,0)<>0
   |";
   
   Запрос.Текст = ТекстЗапроса;
   
   ТаблицаРезультата = Запрос.Выполнить().Выгрузить();
1 acsent
 
17.04.13
18:03
статистика сбивается
2 Miss1C
 
17.04.13
18:04
(1) Поподробнее пожалуйста
3 Miss1C
 
17.04.13
18:04
Количество юзеров в базе не изменилось
4 Живой Ископаемый
 
17.04.13
18:09
При чем тут пользователи?
Причин может быть масса, от статистики до заполненности кэша, или например изза того что база файловая и утром клиент выполнялся на том же компе где и иб лежит, а вечером в нее зашли клиенты по сети
5 Miss1C
 
17.04.13
18:09
Размер базы 200 гиг
6 Жан Пердежон
 
17.04.13
18:10
планы запросов в студию!
7 Miss1C
 
17.04.13
18:10
(4) Где можно почитать о статистике?
8 Живой Ископаемый
 
17.04.13
18:12
(5) ну так скажите взрослым, чтобы статистику обновили. Или проверили производительность доступными методами
9 Никола_
Питерский
 
17.04.13
18:12
(7) Блин Таня если Ты еще и оптимизацией 1С займёссяя, совсем пропадешь.
10 Никола_
Питерский
 
17.04.13
18:13
(7) Срочно в Москоу-сити окучивать олигархов и обеспечивать себе безбедную старость !
11 Живой Ископаемый
 
17.04.13
18:14
(7) везде можно почитать, например в книге How to be a rock-star DBA
12 Miss1C
 
17.04.13
18:15
(7) Мне нравится все добиваться,своим трудом
13 Живой Ископаемый
 
17.04.13
18:17
Можно просто в книгах по вашему серверу иб
14 Miss1C
 
17.04.13
18:18
+(12) То что легко дается, мало ценится
15 andreynikus
 
17.04.13
18:19
Ужасный ужасный запрос.
Соединение с виртуальными таблицами и с подзапросом хоже не придумааешь.
Перепиши с использованием времменных таблиц и будет тебе счастье.
А статистику все равно нужно обновить, но если запрос не переписать надолго это не спасет.
16 Miss1C
 
17.04.13
18:21
(15) Спасибо, учту
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс