|
Недостаточно памяти при формировании запроса | ☑ | ||
---|---|---|---|---|
0
ChMikle
07.01.15
✎
12:23
|
при формировании отчета за год по продажам товаров порядка 10 тыс. позиций вываливает ошибку недостаточно памяти , начали разбираться - ограничение в самой архитектуре 1С 8.2 при работе до 4 гб , запрос простой, выборка товаров по виду документа количество и сумма . Кто -нибудь как-то смог обойти это ограничение ?
|
|||
1
XLife
07.01.15
✎
12:25
|
клиент/сервер + sql
|
|||
2
Armando
07.01.15
✎
12:28
|
Делай выборку порциями
|
|||
3
ДенисЧ
07.01.15
✎
12:29
|
ставь 64бит сервер
|
|||
4
kumena
07.01.15
✎
12:29
|
>> начали разбираться - ограничение в самой архитектуре 1С 8.2 при работе до 4 гб
если вы сами разобрались то нафига тут писать? выяснили бы сначала кому памяти не хватает, серверу или клиенту. |
|||
5
Armando
07.01.15
✎
12:29
|
Оптимизация использования оперативной памяти
http://its.1c.ru/db/v8std#content:2149184374:hdoc |
|||
6
ChMikle
07.01.15
✎
12:32
|
(3) сервак 64-битный
(4) в серваке он запрос выполнять начинает и пишет недостаточно памяти. (2) выборку порциями - поподробнее можно , в тз частями грузить ? |
|||
7
shuhard
07.01.15
✎
12:34
|
(0) сразу запрос покажешь или будет до вечера соплю жевать ?
|
|||
8
ChMikle
07.01.15
✎
12:34
|
(5) я не зареген , можешь в жвух словах сказать как бороться ?
|
|||
9
kumena
07.01.15
✎
12:35
|
>> ограничение в самой архитектуре 1С 8.2 при работе до 4 гб
а это откуда можно узнать? не вяжется как то с 64битным сервером. |
|||
10
XLife
07.01.15
✎
12:37
|
(9) толстый клиент... 32 бита
|
|||
11
ДенисЧ
07.01.15
✎
12:38
|
4гб и 64бит сервер не вяжутся.
Одна из черепашек 314здит |
|||
12
kumena
07.01.15
✎
12:40
|
(10) причем тут клиенты, автор заявляет что у него ошибка памяти на сервер
|
|||
13
unregistered
07.01.15
✎
12:43
|
(0) >> запрос простой
Ждём текст простого запроса... >> недостаточно памяти Где? На сервере? На клиенте? >> ограничение ... до 4 гб Как узнали? (самому аж интересно) |
|||
14
Armando
07.01.15
✎
12:47
|
(8)
Правильно ограничивать результат запроса искусственно: Копировать в буфер обмена ВсеОбработано = Ложь; Пока Истина Цикл Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1000 | Номенклатура.Ссылка, | Номенклатура.Наименование, | Номенклатура.ВидНоменклатуры |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | <условие выборки необработанных записей>"; Копировать в буфер обмена РезультатЗапроса = Запрос.Выполнить(); ВсеОбработано = РезультатЗапроса.Пустой(); Если ВсеОбработано Тогда Прервать; КонецЕсли; Копировать в буфер обмена // Обход порции результата запроса ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл // Обработка элемента выборки // ... КонецЦикла; Копировать в буфер обмена КонецЦикла; Также правильно: Копировать в буфер обмена Выборка = Справочники.Номенклатура.Выбрать(..., Отбор); Пока Выборка.Следующий() Цикл // Обработка элемента выборки // ... КонецЦикла; поскольку в этом случае платформа 1С:Предприятие выполняет получение данных из базы порциями фиксированного размера. |
|||
15
SleepyHead
гуру
07.01.15
✎
12:48
|
(0) реквизиты составного типа есть?
|
|||
16
ChMikle
07.01.15
✎
12:49
|
на сервере запускаю отчет , вываливает недостаточно памяти , в отладчике в процедуре на выполнении запроса .
(11) админ ковырял , что сама платформа 1С 8.2 под 32 бита написана , и на нее соответсвенно действуют ограничения даже если сам сервер 64 ьита (14) там абс надо делать и ранжировать по объему продаж :( внутри иерархии, долго работать будет (15) нет |
|||
17
XLife
07.01.15
✎
12:51
|
(16) >админ ковырял , что сама платформа 1С 8.2 под 32 бита написана , и на нее соответсвенно действуют ограничения даже если сам сервер 64 ьита
клиент 32 бита сервер 64 бита запускай не на клиенте, а на сервере... профит! |
|||
18
ChMikle
07.01.15
✎
12:53
|
(17) на 64 объем занимаемой оперативной памяти динамически расширяет ?
|
|||
19
XLife
07.01.15
✎
12:57
|
(18) на 64 битах совсем другие ограничения
|
|||
20
ChMikle
07.01.15
✎
12:58
|
(19) а размер ограниения не скажите ?
|
|||
21
ДенисЧ
07.01.15
✎
12:59
|
(16) " админ ковырял , что сама платформа 1С 8.2 под 32 бита написана , и на нее соответсвенно действуют ограничения даже если сам сервер 64 ьита "
Админа выгнать. Написать ему такую характеристику, чтобы его даже в в дворники не взяли (тем более там уже занято) |
|||
22
ДенисЧ
07.01.15
✎
12:59
|
(20) 2 ТБ тебя устроит?
|
|||
23
unregistered
07.01.15
✎
12:59
|
(16) >> админ ковырял
Админ бредит или не отошёл ещё от праздников. |
|||
24
unregistered
07.01.15
✎
13:00
|
Текст запроса будет?...
Или можно не ждать? |
|||
25
unregistered
07.01.15
✎
13:02
|
- реквизиты составного типа есть?
- нет Как же нет, если в (0) написано "выборка товаров по виду документа" Как минимум есть различные виды документов. Если конечно в тексте запроса вы напрямую не ограничиваете типы. |
|||
26
ChMikle
07.01.15
✎
13:04
|
(22) впечатляет , пошел разбираться
ВЫБРАТЬ Обороты.Товар КАК Товар, Обороты.Склад КАК Склад, Обороты.СуммаРасход - Обороты.СуммаПриход КАК Себестоимость, Обороты.СуммаПродажиРасход - Обороты.СуммаПродажиПриход КАК Сумма, Обороты.КоличествоРасход - Обороты.КоличествоПриход КАК Количество ИЗ РегистрНакопления.ДвиженияТоваров.Обороты(&ДатаНачала, &ДатаОкончания, Запись, ) КАК Обороты ГДЕ Обороты.СуммаПродажиОборот <> 0 |
|||
27
Mutniy2
07.01.15
✎
13:09
|
Обороты.Товар КАК Товар,
Обороты.Склад КАК Склад, местами поменять, не? |
|||
28
mdocs
07.01.15
✎
13:10
|
А если избавится от виртуальной таблицы оборотов - быстрее не будет? Все равно ж деталька по записям идет.
|
|||
29
ChMikle
07.01.15
✎
13:12
|
(28) да я думаю тут надо по ДенисуЧ :)), сам запрос посылать на сервер , сервак-то 64 битный , пример бы еще кода листинга , вообще был бы благодарен
|
|||
30
mdocs
07.01.15
✎
13:17
|
Ну кроме того, очевидно что расход-приход и есть оборот с минусом.
|
|||
31
ChMikle
07.01.15
✎
13:17
|
вобщем при ночном тесте выявилось, вываливает ошибку на клиенте при возврате результата запроса на клиенте
|
|||
32
ChMikle
07.01.15
✎
13:22
|
http://msdn.microsoft.com/en-us/library/aa366778(v=vs.85).aspx толстый клиент стоит у пользователей :)
|
|||
33
unregistered
07.01.15
✎
13:23
|
Не понял для чего тут детализация по записям?...
Явно текст не полный, либо надо убирать детализацию по записям. |
|||
34
ChMikle
07.01.15
✎
13:26
|
(33) у записией есть разный признак типа документа , из буфера в рдп с сервака копировал не совсем удобно
|
|||
35
mdocs
07.01.15
✎
13:28
|
Ну так реальный текст запроса будет или нет? Никаких типов и видов документов в запросе из (26) нет
|
|||
36
ChMikle
07.01.15
✎
13:34
|
(33) да тут детализация ни к чему
(35) нет отбора нет , весь запрос ...как есть |
|||
37
ChMikle
07.01.15
✎
13:39
|
детализация периода запись тут лишняя
|
|||
38
unregistered
07.01.15
✎
13:56
|
А что хоть за конфа?
И что за регистр такой интересный, где вместе живут и Сумма и СуммаПродажи? СуммаПродажи это ресурс? Если да, то как он в ноль закрывается? Или это реквизит? |
|||
39
ChMikle
07.01.15
✎
14:14
|
(38) да самописка , есть один регистр , суммапродаж -это ресурс , регистр 1 партии товаров :) , заработало быстро , цифры конечные сошлись ... но все равно я так понимаю с толстого клиента надо слезать , пробывать тонкий клиент -сервер , как Денис Ч советует, тогда все летать должно начать
|
|||
40
unregistered
07.01.15
✎
14:26
|
(38) (39) Судя по структуре регистра, есть подозрения, что регистр этот какой-то кривой... В противном случае я в упор не понимаю как он может закрыться в ноль.
>> пробовать тонкий клиент...тогда все летать должно начать Если речь идёт о самописке, то я бы особо не спешил. У управляемых форм есть куча своих собственных тормозов, которые не только нивелируют профит от клиент-серверной архитектуры, но и полностью его дискредитируют. Достаточно посмотреть типовые конфы от 1С, переписанные на УФ. |
|||
41
ChMikle
07.01.15
✎
14:41
|
(38)(39) регистр измерения : товар,склад,фирма ,ресурсы суммапродаж,себестоимость,количество
|
|||
42
unregistered
07.01.15
✎
14:52
|
(41) А что такое тогда в тексте запроса Обороты.СуммаРасход - Обороты.СуммаПриход?...
А вид регистра какой - остатков или оборотов? Что-то я вообще перестаю понимать как у вас эта хреновина работает.... Судя по (41) это регистр оборотов, в который делаются движения при продаже. Но судя по тексту запроса там есть Приход и Расход - значит это регистр остатков. Но как вы закрываете такой регистр, если у вас в ресурсах сумма продажи и себестоимость?.... Впрочем, проблема из (0) решилась, а остальное - ваше дело. |
|||
43
Другая
07.01.15
✎
19:03
|
Вы стебаетесь штоле? Автор, сделай СГРУППИРОВАТЬ по СКЛАД, ТОВАР, либо пеши полный текст запроса, без упрощений.
|
|||
44
senior
08.01.15
✎
11:34
|
А с чего вообще взяли что памяти не хватает при выполнении запроса на сервере, а не при построении табличного документа на клиенте. Например если сделать карточку счета за большой период, проблема возникнет на клиенте (естественно речь о сервере64)
|
|||
45
ChMikle
09.01.15
✎
16:54
|
(44) на клиенте на толстом , уже тут вроде раобрались сервак 64-битный , там вроде как нет ограничений . переписывать надо на тонкий клиент отчеты, если я правильно понял из дисскуссии
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |