Имя: Пароль:
1C
1С v8
Блокировки ms sql во время построения отчета.
0 neoda4ka
 
14.10.14
15:51
Добрый день, задайте пожалуйста верное направление в борьбе со следующей ошибкой:
Есть отчет 1С, написан не лучшим образом и использует кучу вложенных запросов. Все было хорошо, отчет строился, хоть и очень долго. После переустановили SQL(с express на более функциональную редакцию), настроили план обслуживания.  
В результате отчет перестал строиться, стал зависать на выполнении запроса.
Определили что вся проблема в следующем месте:

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                    &КонецПериода,
                    КатегорияЦен = &КатегорияЦен
                        И СтруктурнаяЕдиница = &СтруктурнаяЕдиница
                        И Фирма = &Фирма) КАК ЦеныНоменклатурыСрезПоследнихКонец

Если закомментировать отбор по структурной единице - все работает хорошо, но этот отбор необходим.
Обновляли индекс и через платформу и через SQL server - результата нет.

win- 2003, 1С - 8.2.18, SQL 2008 r2
1 Armando
 
14.10.14
15:54
КатегорияЦен, СтруктурнаяЕдиница, Фирма - это всё измерения?
2 Armando
 
14.10.14
15:55
А это работает?

выбрать * из РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                    &КонецПериода,
                    КатегорияЦен = &КатегорияЦен
                        И СтруктурнаяЕдиница = &СтруктурнаяЕдиница
                        И Фирма = &Фирма) КАК ЦеныНоменклатурыСрезПоследнихКонец
3 Armando
 
14.10.14
15:55
а вообще соединение со срезом не кошерно
4 Зеленый пень
 
14.10.14
15:57
(0) Очень странно.
Можно вынести условие наружу в "ГДЕ ...", если это измерение.
5 Зеленый пень
 
14.10.14
15:58
Ой...
Соединение? Это нехорошо, сначала поместите этот срезпоследних в ВТ, и её присоединяйте.
6 floody
 
14.10.14
16:07
Соединение со срезом противопоказано. Запрос не зависает, а просто ооооочень долго выполняется, может день, неделю.. Переделать на ВТ.
7 floody
 
14.10.14
16:08
И еще, если есть соединения с подзапросами - тоже переделать на соединения с ВТ.
8 neoda4ka
 
14.10.14
16:12
(1) Да, это все измерения.
Регистр содержит 400 000 записей.
Делали на ВТ - без отбора по структурной единице - секунды, с ним - опять висяк. Такое чувство что испортили индексы...
9 rsv
 
14.10.14
16:15
(0) Зависать ... не значит блокировка (ибо все запросы в 1С работатют с nolock) .   Если висит .. выгрузите что в (0) временную и джойните с ней.
10 H A D G E H O G s
 
14.10.14
16:16
(8) Давай коннект, посмотрим.
icq: 374-881-272
11 rsv
 
14.10.14
16:21
Попробуйте  еще самостоятельно реализовать срезпоследних через max(дата)