Кто сталкивался? The query processor ran out of stack space during query optimization #476777


#0 by Ivanich
Текст запроса простой ИЗ            Авто, ГДЕ    (НЕ ПроводкиПоУпрПлануСчетовОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров)
#1 by Ivanich
Выполнял следующее: 1. Если убрать "Субконто1.Код В (&ВыбНоменклатура)" ошибка исчезает. 2. Если задавать дата1 01.04.2010 00:00:00 или ранее, то ошибка исчезает 3. Если задать дата1 01.04.2010 00:00:01 или позже ошибка возникает. 4. Выполнил ТИИ и пересчет итгов в SQL варианте. Добился устранения всех ошибок. Ошибка сохраняется 5. Перевел базу в файловый вариант. проверил СHDBFL - ошибок нет. 6. ТИИ в файловом варианте - ошибок нет 7. Запрос в файловом варианте работает 8. Перевожу обратно в SQL - вылетает 9. Вывел на печать массив <ВыбНоменклатура> количество элементов 91. Начал увеличивать количество эл-тов с 1-го. На 57 элементе - возникла ошибка. 10. Проверил запрос на элементах с 50 по 60 - ошибок нет 11. Начал добавлять элементы 91,90,89... где-то на 57 снова возникает ошибка Что еще можно сделать?
#2 by Maxus43
ГДЕ    (НЕ ПроводкиПоУпрПлануСчетовОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров) неосилил... зачем И ИСТИНА?
#3 by Mort
Субконто1.Код В (&ВыбНоменклатура) - а подумать?
#4 by Maxus43
на Скуле запросам помагает обновление статистики ещё...
#5 by Ivanich
текст запроса формируется динамически. в исходном вариате строка "И ПроводкиПоУпрПлануСчетовОстаткиИОбороты.Субконто1.УпрВидРеализации.Код В(&ВыбУпрВид)" она заменяется на "И ИСТИНА" если не задан массив ВыбУпрВид Текст взят с отладчика
#6 by Ivanich
не понял вопроса? Субконто1.Код - это строка, а ВыбНоменклатура - это массив вида 0002057,008926 и т.д.
#7 by Ivanich
что такое обновление статистики? Я не админ
#8 by Maxus43
на основании скульной статистики строится план запроса к скулю от 1с. можно попробовать обновить её, но лучше разобраться с самим запросом, оптимизировать
#9 by Ivanich
Еще баз 11. В 10 проблем нет. Счас перенес условие из параметров виртуальной таблицы в секцию ГДЕ т.е Субконто1.Код В (&ВыбНоменклатура) ГДЕ    (НЕ ПроводкиПоУпрПлануСчетовОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров)    И ПроводкиПоУпрПлануСчетовОстаткиИОбороты.Субконто1.Код В (&ВыбНоменклатура) ошибка исчезла. Но это же не оптимизация запроса.
#10 by Maxus43
как сказать... условие чесно говоря не красивое, запрос на скуль кривой посылает и оптимизировать не может... Субконто1 В (&ВыбНоменклатура) - чем не катит, если ссылки на номенклатуру а не коды подставлять?
#11 by Maxus43
и сколько там элементов в этих массивах номенклатуры и складов?
#12 by Ivanich
Запрос выполняется по СОМ-соединению, поэтому параметры передаем в виде строк и чисел и получаем тоже строки/числа склады до 15, номенклатура 3 тысячи.
#13 by toypaul
что-то подсказывает мне, что нужно указать виды субконто. иначе возможно что Субконто1.Код цепляет за собой кучу таблиц (можно посмотреть в СКЛ профайлере).
#14 by Ivanich
спасибо, счас попробую
#15 by Ivanich
Субконто1 ССЫЛКА Справочник.Номенклатура                И Субконто1.Код В (&ВыбНоменклатура)                И Субконто2.Код В (&ВыбСклад) НЕ помогло, вылетел
#16 by toypaul
виды субконто насколько я помню задаются в таблице регистра. правда ни разу такой возможностью не приходилось пользоваться. рекомендую все же посмотреть что там в профайлере творится.
#17 by Ivanich
Вообщем, админ где-то накопал, что это ошибка в SP4. Майкрософт вроде признает эту проблему. Пришлось переделать запрос. Заменил "Субконто1.Код В (&ВыбНоменклатура)" на Субконто1 В (ВЫБРАТЬ РАЗЛИЧНЫЕ        Номенклатура.Ссылка        ИЗ        Справочник.Номенклатура КАК Номенклатура
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С