![]() |
|
Кто сталкивался? The query processor ran out of stack space during query optimization | ☑ | ||
---|---|---|---|---|
0
Ivanich
27.04.10
✎
09:49
|
Текст запроса простой
ВЫБРАТЬ ЕСТЬNULL(ПроводкиПоУпрПлануСчетовОстаткиИОбороты.Субконто1.Код, &ПустСсылка) КАК Номенклатура, ПроводкиПоУпрПлануСчетовОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт, ПроводкиПоУпрПлануСчетовОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт, ПроводкиПоУпрПлануСчетовОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт, ПроводкиПоУпрПлануСчетовОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт, ПроводкиПоУпрПлануСчетовОстаткиИОбороты.КоличествоНачальныйОстатокДт КАК КоличествоНачальныйОстатокДт, ПроводкиПоУпрПлануСчетовОстаткиИОбороты.КоличествоОборотДт КАК КоличествоОборотДт, ПроводкиПоУпрПлануСчетовОстаткиИОбороты.КоличествоОборотКт КАК КоличествоОборотКт, ПроводкиПоУпрПлануСчетовОстаткиИОбороты.КоличествоКонечныйОстатокДт КАК КоличествоКонечныйОстатокДт, ПроводкиПоУпрПлануСчетовОстаткиИОбороты.ПериодДень КАК Период ИЗ РегистрБухгалтерии.ПроводкиПоУпрПлануСчетов.ОстаткиИОбороты( &Дата1, &Дата2, Авто, , Счет = &Счет, , Субконто1.Код В (&ВыбНоменклатура) И Субконто2.Код В (&ВыбСклад)) КАК ПроводкиПоУпрПлануСчетовОстаткиИОбороты ГДЕ (НЕ ПроводкиПоУпрПлануСчетовОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров) И ИСТИНА УПОРЯДОЧИТЬ ПО Номенклатура, Период ИТОГИ СУММА(СуммаНачальныйОстатокДт), СУММА(СуммаОборотДт), СУММА(СуммаОборотКт), СУММА(СуммаКонечныйОстатокДт), СУММА(КоличествоНачальныйОстатокДт), СУММА(КоличествоОборотДт), СУММА(КоличествоОборотКт), СУММА(КоличествоКонечныйОстатокДт) ПО ОБЩИЕ, Номенклатура, Период ПЕРИОДАМИ(ДЕНЬ, &Дата1, &Дата2) |
|||
1
Ivanich
27.04.10
✎
10:06
|
Выполнял следующее:
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
Maxus43
27.04.10
✎
10:09
|
ГДЕ
(НЕ ПроводкиПоУпрПлануСчетовОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров) И ИСТИНА неосилил... зачем И ИСТИНА? |
|||
3
Mort
27.04.10
✎
10:09
|
Субконто1.Код В (&ВыбНоменклатура) - а подумать?
|
|||
4
Maxus43
27.04.10
✎
10:11
|
на Скуле запросам помагает обновление статистики ещё...
|
|||
5
Ivanich
27.04.10
✎
10:18
|
(2) текст запроса формируется динамически. в исходном вариате
строка "И ПроводкиПоУпрПлануСчетовОстаткиИОбороты.Субконто1.УпрВидРеализации.Код В(&ВыбУпрВид)" она заменяется на "И ИСТИНА" если не задан массив ВыбУпрВид Текст взят с отладчика |
|||
6
Ivanich
27.04.10
✎
10:20
|
(3) не понял вопроса?
Субконто1.Код - это строка, а ВыбНоменклатура - это массив вида 0002057,008926 и т.д. |
|||
7
Ivanich
27.04.10
✎
10:21
|
(4) что такое обновление статистики? Я не админ
|
|||
8
Maxus43
27.04.10
✎
10:24
|
(7) на основании скульной статистики строится план запроса к скулю от 1с. можно попробовать обновить её, но лучше разобраться с самим запросом, оптимизировать
|
|||
9
Ivanich
27.04.10
✎
10:33
|
Еще баз 11. В 10 проблем нет.
(8) Счас перенес условие из параметров виртуальной таблицы в секцию ГДЕ т.е Субконто1.Код В (&ВыбНоменклатура) ГДЕ (НЕ ПроводкиПоУпрПлануСчетовОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров) И ПроводкиПоУпрПлануСчетовОстаткиИОбороты.Субконто1.Код В (&ВыбНоменклатура) ошибка исчезла. Но это же не оптимизация запроса. |
|||
10
Maxus43
27.04.10
✎
10:36
|
(9) как сказать... условие чесно говоря не красивое, запрос на скуль кривой посылает и оптимизировать не может...
Субконто1 В (&ВыбНоменклатура) - чем не катит, если ссылки на номенклатуру а не коды подставлять? |
|||
11
Maxus43
27.04.10
✎
10:38
|
и сколько там элементов в этих массивах номенклатуры и складов?
|
|||
12
Ivanich
27.04.10
✎
10:43
|
(11)Запрос выполняется по СОМ-соединению, поэтому параметры передаем в виде строк и чисел и получаем тоже строки/числа
склады до 15, номенклатура 3 тысячи. |
|||
13
toypaul
гуру
27.04.10
✎
10:49
|
что-то подсказывает мне, что нужно указать виды субконто. иначе возможно что Субконто1.Код цепляет за собой кучу таблиц (можно посмотреть в СКЛ профайлере).
|
|||
14
Ivanich
27.04.10
✎
10:52
|
(13) спасибо, счас попробую
|
|||
15
Ivanich
27.04.10
✎
11:00
|
Субконто1 ССЫЛКА Справочник.Номенклатура
И Субконто1.Код В (&ВыбНоменклатура) И Субконто2.Код В (&ВыбСклад) НЕ помогло, вылетел |
|||
16
toypaul
гуру
27.04.10
✎
11:03
|
виды субконто насколько я помню задаются в таблице регистра. правда ни разу такой возможностью не приходилось пользоваться. рекомендую все же посмотреть что там в профайлере творится.
|
|||
17
Ivanich
28.04.10
✎
12:17
|
Вообщем, админ где-то накопал, что это ошибка в SP4. Майкрософт вроде признает эту проблему.
Пришлось переделать запрос. Заменил "Субконто1.Код В (&ВыбНоменклатура)" на Субконто1 В (ВЫБРАТЬ РАЗЛИЧНЫЕ Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Код В (&ВыбНоменклатура)) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |