Вход | Регистрация


1С:Предприятие ::

Метки:

Ошибка 1С или SQL, Помогите разобратся

Я
   vikpart
 
12.01.18 - 21:19
Доброго времени!

Есть База УТП серверная, Ведется участок розницы, при групповом проведении документов Отчет о розничных продажах по БУ, после нескольких документов зависает, опытным путем нащел процедуру которая завешивает
Там есть запрос к РС
|ВЫБРАТЬ
    |    ЦеныПродажные.Склад КАК Склад,
    |    ЦеныПродажные.Номенклатура КАК Номенклатура,
    |    ЦеныПродажные.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    |    ЦеныПродажные.Цена КАК Цена
    |ИЗ
    |    РегистрСведений.ЦеныАТТ.СрезПоследних(&Дата, Склад В (&СписокСкладов)
    |       И Номенклатура В (&СписокНоменклатуры)) КАК ЦеныПродажные
    |";
Вроде все просто, но проведение зависает совсем, пробывал выгрузить в файловую версию все отрабатывает нормально.

Куда копать, что оптимизировать не могу понять!
 
  Рекламное место пустует
   Dmitry1c
 
1 - 12.01.18 - 21:27
А ты уверен, что именно этот запрос вешает систему?
   Михаил Козлов
 
2 - 12.01.18 - 21:28
Наверное, ТИИ для начала.
Попробовать понять, зачем нужна цена АТТ при проведении отчета о розничных продажах.
   vikpart
 
3 - 12.01.18 - 21:40
Уверен, я его исключил из проведения и все ровно,ТиИ делал не помагает, нужна цена для расчета возвратов в рознице.

Меня больше смущает что простецкий запрос, выполненный несколько раз завешивает процесс
   vikpart
 
4 - 12.01.18 - 21:42
Может в настройках SQL что не так???, ведь в файловом варианте работает (((
   ptiz
 
5 - 12.01.18 - 21:57
Для начала - обновить в sql статистику по таблице цен.
   vikpart
 
6 - 12.01.18 - 22:31
Статистику обновлял, не помогает
   asady
 
7 - 12.01.18 - 22:42
Размеры таблицы ценыатт, списка номенклатуры укажи
   vikpart
 
8 - 12.01.18 - 22:46
Строк в таблице 265541, список номенклатуры 50-200, склад 1, характеристики не используются
   asady
 
9 - 12.01.18 - 22:57
Я бы сделал внешюю обработку этим запросом и погонял бы с этими списками номенклатуры
Меняя параметры и исключая части
структура регистра какая?
По той инфе что есть тсой запрос должен летать
   vikpart
 
10 - 12.01.18 - 23:02
Это и есть все поля регистра, меня тоже это смущает, попробую погонять его отдельно
 
  Рекламное место пустует
   youalex
 
11 - 12.01.18 - 23:18
профайлером отлови этот запрос (если это он) и скорми его скулю.
   youalex
 
12 - 12.01.18 - 23:19
(10) условие в индекс попадает хотя бы?
   Ненавижу 1С
 
13 - 12.01.18 - 23:21
ну ты же не просто текст запроса убрал? там же результат запроса как-то отрабатывается

и одно дело проверить хоть и в файловой но с 1 пользователем и в серверной со 100
   vikpart
 
14 - 12.01.18 - 23:35
Создал обработку с этим запросом и скормил ей номенклатуру с документов о продажах за год в цикле по документно все отработало нормально,
На серверной я проверял монопольно картинка таже, зависает
   Злопчинский
 
15 - 12.01.18 - 23:59
(8) если характеристики не используются - зачем ты запросом тянешь их? Делать нечего, по играться охота?
   Ненавижу 1С
 
16 - 13.01.18 - 00:04
(15) мы тоже не используем, но в типовых 100500 запросах они тянутся - не мешают
   youalex
 
17 - 13.01.18 - 12:09
Как вариант, можно попробовать запихать значения параметров в вт кроссджойном и фильтровать регистр уже по этой вт:

.СрезПоследних(&Дата, (Склад, Номенклатура)  В (ВЫБРАТЬ вт.Склад, вт.Номенклатура из вт как вт))
   vi0
 
18 - 13.01.18 - 12:15
(10) какой порядок измерений в регистре?
   vi0
 
19 - 13.01.18 - 12:16
(17) да, это можно попробовать
   Лефмихалыч
 
20 - 13.01.18 - 12:23
(0) сколько элементов в массивах, которые ты передаешь в запрос? Склад и Номенклатура - ведущие измерения?
   Лефмихалыч
 
21 - 13.01.18 - 12:23
ну, и план-то покажи штоля
   triviumfan
 
22 - 13.01.18 - 12:30
(17) Если это сработает, "то я сожру свои носки" (с)
   breezee
 
23 - 13.01.18 - 13:10
(0) А точно на этой строке зависает? В отладке-то смотрели?
   vi0
 
24 - 13.01.18 - 16:58
(22) а в чем проблема?
   Лефмихалыч
 
25 - 13.01.18 - 17:50
(24) если тормозит именно этот запрос, то такой трюк ничего не даст вероятнее всего
   triviumfan
 
26 - 13.01.18 - 18:46
(25) +100500.
Имхо дело не в этом запросе) ТС что-то скрывает/недоговаривает
   youalex
 
27 - 13.01.18 - 18:52
(25) скорее всего, если дело в этом запросе, то даст. Потому что это условие платформа преобразует в обычный коррелированный запрос, по индексированным полям, мсскуль его прожует на раз.
С другой стороны, возможно ты прав, тут может играть количество элементов в параметре. Дело в том (обращаюсь к ТС) - что если элементов мало, то платформа пихает их литералами в текст запроса, грубо говоря в where(точнее, в параметры хранимки, но не суть)  . Но если значений много - то платформа генерит вт. Причем, каждое значение - это отдельный инсёрт. И вот тут оно может тупить.
   ZloyBrawler
 
28 - 13.01.18 - 20:56
сталкивался с падением производительности похожего рода, помогло только повышение режима совместимости
наблюдал правда такое на бухгалтерских регистрах
   triviumfan
 
29 - 13.01.18 - 21:04
(27) в 8 тебе ответили про параметры.
   h-sp
 
30 - 13.01.18 - 21:04
может наоборот написать

|ВЫБРАТЬ
   |    ЦеныПродажные.Номенклатура КАК Номенклатура,
   |    ЦеныПродажные.Склад КАК Склад,

всё-таки так правильнее
   Glup0sti
 
31 - 15.01.18 - 15:13
выполни DBCC FLUSHPROCINDB(db_id()) к нужной базе
получи план запроса и порядок измерений регистра покажи



Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует