Доброго времени суток!
Есть запрос следующего вида:
Работает не очень быстро, но все-же работает Теперь к запросу добавили еще условий:
В Массиве "Клиенты" всего два контрагента, но этого вполне достаточно ) На компе 6гиг оперативы, выполнение обработки медленно, но верно жрет оперативку до самого конца. В итоге выдает сообщение "Недостаточно памяти" и 1С закрывается
Можно как-то оптимизировать данный запрос? Или выполнить его каким-то образом на сервере? Ускорит-ли это выполнение запроса?
хм... диллема-то в чём? результат запроса, каким бы он ни был огромным, не может забить оперативку. ибо он не выгружается в неё, а транслируется на порт 1443 (если не ошибаюсь). Натолкать мусора в оперативку может цикл, в котором не NULL-ятся значения переменных и создаются новые (с точки зрения кучи ОЗУ) переменные. Т.о., я бы смотрел на обработку результата запроса.
И ещё вопрос: какой именно процесс хавает оперативу, 1С?
Тээээк... делаем следующее. В режиме отладки ставим точку остановки на строке
и на строчке, следующей за ней.
После остановки на первой точке жмём Фэ5 и смотрим на результат.
Если процесс начинает жрать память и не происходит остановка на следующей точке, то тут какой-то серьёзный касяк на уровне СКуЛьной БД.
Если же запрос выполняется и отладка останавливается на второй точке, то вставляй в вену капельницу с кофеином и начинай аццкий дебаг. Проблема в обработке результата.
и посмотри, на каком из этих этапов происходит лажа
Если на втором, то попробуй (в качестве научного эксперимента) не "Выбрать()", а выгрузить результат в таблицу значений.
И ещё одно. Пробовал выполнять этот запрос в консоли запросов?Изменено 06.02.12 19:15:04
Запустил. Пока что пройдена первая точка останова. Памяти схавал немного, но до второй точки еще не дошел. i7 опять напрягся на 2,9 гигагерца Посмотрим - чем это закончится.
Сек - попробую второй вариант.
В каонсоли запускал без новых условий. Все работало. Ща попробую с условиями запустить.Изменено 06.02.12 19:19:48
(7) Onotoley, эхЪ... мне бы ваши мощностя - я бы боеголовки на штаты с помощью 1С запускал бы
З.Ы. я думал, что этот ресурс поактивнее, чем оказалось на самом деле
Интересно... Запустил параллельно - через отладчик и, в другой копии базы, через консоль запросов. Обе поперли хавать память, но через консоль гораздо прожорливее! Запустил одновременно, на данный момент:
отладчик захавал 307 метров
консоль 760 метров
З.Ы. Да, уточню - сейчас провожу эксперимент на локальной копии базы.
Эээээээээээээээ!!!!!!!!!!! Да Вы, батенька, седьмые форточки юзаете...
1Ску лучше запускать под 32-х разрядными ОС. Попробуй поднять виртуальную машину, откуси ей два (или три) гига мозгов и должно всё быть нормально
На серваке запрос пашет уже два часа. Пока конца не видно.
Попробовал переделать запрос (с подсказки BabySG). Не уверен, что правильно составил. Работает 10 секунд
Подсказка: Для редактирования своего ответа щелкните по значку (справа)