|
Ошибка 1С или SQL, Помогите разобратся | ☑ | ||
---|---|---|---|---|
0
vikpart
12.01.18
✎
21:19
|
Доброго времени!
Есть База УТП серверная, Ведется участок розницы, при групповом проведении документов Отчет о розничных продажах по БУ, после нескольких документов зависает, опытным путем нащел процедуру которая завешивает Там есть запрос к РС |ВЫБРАТЬ | ЦеныПродажные.Склад КАК Склад, | ЦеныПродажные.Номенклатура КАК Номенклатура, | ЦеныПродажные.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | ЦеныПродажные.Цена КАК Цена |ИЗ | РегистрСведений.ЦеныАТТ.СрезПоследних(&Дата, Склад В (&СписокСкладов) | И Номенклатура В (&СписокНоменклатуры)) КАК ЦеныПродажные |"; Вроде все просто, но проведение зависает совсем, пробывал выгрузить в файловую версию все отрабатывает нормально. Куда копать, что оптимизировать не могу понять! |
|||
1
Dmitry1c
12.01.18
✎
21:27
|
А ты уверен, что именно этот запрос вешает систему?
|
|||
2
Михаил Козлов
12.01.18
✎
21:28
|
Наверное, ТИИ для начала.
Попробовать понять, зачем нужна цена АТТ при проведении отчета о розничных продажах. |
|||
3
vikpart
12.01.18
✎
21:40
|
Уверен, я его исключил из проведения и все ровно,ТиИ делал не помагает, нужна цена для расчета возвратов в рознице.
Меня больше смущает что простецкий запрос, выполненный несколько раз завешивает процесс |
|||
4
vikpart
12.01.18
✎
21:42
|
Может в настройках SQL что не так???, ведь в файловом варианте работает (((
|
|||
5
ptiz
12.01.18
✎
21:57
|
Для начала - обновить в sql статистику по таблице цен.
|
|||
6
vikpart
12.01.18
✎
22:31
|
Статистику обновлял, не помогает
|
|||
7
asady
12.01.18
✎
22:42
|
Размеры таблицы ценыатт, списка номенклатуры укажи
|
|||
8
vikpart
12.01.18
✎
22:46
|
Строк в таблице 265541, список номенклатуры 50-200, склад 1, характеристики не используются
|
|||
9
asady
12.01.18
✎
22:57
|
Я бы сделал внешюю обработку этим запросом и погонял бы с этими списками номенклатуры
Меняя параметры и исключая части структура регистра какая? По той инфе что есть тсой запрос должен летать |
|||
10
vikpart
12.01.18
✎
23:02
|
Это и есть все поля регистра, меня тоже это смущает, попробую погонять его отдельно
|
|||
11
youalex
12.01.18
✎
23:18
|
профайлером отлови этот запрос (если это он) и скорми его скулю.
|
|||
12
youalex
12.01.18
✎
23:19
|
(10) условие в индекс попадает хотя бы?
|
|||
13
Ненавижу 1С
гуру
12.01.18
✎
23:21
|
ну ты же не просто текст запроса убрал? там же результат запроса как-то отрабатывается
и одно дело проверить хоть и в файловой но с 1 пользователем и в серверной со 100 |
|||
14
vikpart
12.01.18
✎
23:35
|
Создал обработку с этим запросом и скормил ей номенклатуру с документов о продажах за год в цикле по документно все отработало нормально,
На серверной я проверял монопольно картинка таже, зависает |
|||
15
Злопчинский
12.01.18
✎
23:59
|
(8) если характеристики не используются - зачем ты запросом тянешь их? Делать нечего, по играться охота?
|
|||
16
Ненавижу 1С
гуру
13.01.18
✎
00:04
|
(15) мы тоже не используем, но в типовых 100500 запросах они тянутся - не мешают
|
|||
17
youalex
13.01.18
✎
12:09
|
Как вариант, можно попробовать запихать значения параметров в вт кроссджойном и фильтровать регистр уже по этой вт:
.СрезПоследних(&Дата, (Склад, Номенклатура) В (ВЫБРАТЬ вт.Склад, вт.Номенклатура из вт как вт)) |
|||
18
vi0
13.01.18
✎
12:15
|
(10) какой порядок измерений в регистре?
|
|||
19
vi0
13.01.18
✎
12:16
|
(17) да, это можно попробовать
|
|||
20
Лефмихалыч
13.01.18
✎
12:23
|
(0) сколько элементов в массивах, которые ты передаешь в запрос? Склад и Номенклатура - ведущие измерения?
|
|||
21
Лефмихалыч
13.01.18
✎
12:23
|
ну, и план-то покажи штоля
|
|||
22
triviumfan
13.01.18
✎
12:30
|
(17) Если это сработает, "то я сожру свои носки" (с)
|
|||
23
breezee
13.01.18
✎
13:10
|
(0) А точно на этой строке зависает? В отладке-то смотрели?
|
|||
24
vi0
13.01.18
✎
16:58
|
(22) а в чем проблема?
|
|||
25
Лефмихалыч
13.01.18
✎
17:50
|
(24) если тормозит именно этот запрос, то такой трюк ничего не даст вероятнее всего
|
|||
26
triviumfan
13.01.18
✎
18:46
|
(25) +100500.
Имхо дело не в этом запросе) ТС что-то скрывает/недоговаривает |
|||
27
youalex
13.01.18
✎
18:52
|
(25) скорее всего, если дело в этом запросе, то даст. Потому что это условие платформа преобразует в обычный коррелированный запрос, по индексированным полям, мсскуль его прожует на раз.
С другой стороны, возможно ты прав, тут может играть количество элементов в параметре. Дело в том (обращаюсь к ТС) - что если элементов мало, то платформа пихает их литералами в текст запроса, грубо говоря в where(точнее, в параметры хранимки, но не суть) . Но если значений много - то платформа генерит вт. Причем, каждое значение - это отдельный инсёрт. И вот тут оно может тупить. |
|||
28
ZloyBrawler
13.01.18
✎
20:56
|
сталкивался с падением производительности похожего рода, помогло только повышение режима совместимости
наблюдал правда такое на бухгалтерских регистрах |
|||
29
triviumfan
13.01.18
✎
21:04
|
(27) в 8 тебе ответили про параметры.
|
|||
30
h-sp
13.01.18
✎
21:04
|
может наоборот написать
|ВЫБРАТЬ | ЦеныПродажные.Номенклатура КАК Номенклатура, | ЦеныПродажные.Склад КАК Склад, всё-таки так правильнее |
|||
31
Glup0sti
15.01.18
✎
15:13
|
выполни DBCC FLUSHPROCINDB(db_id()) к нужной базе
получи план запроса и порядок измерений регистра покажи |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |