Вход | Регистрация



Ошибка нехватки памяти при построении отчета на СКД

Ошибка нехватки памяти при построении отчета на СКД
Я
   mzelensky
 
17.08.18 - 10:54
Доброго всем.

Платформа 1С:Предприятие 8.2.19.130 в режиме совместимости с 8.1.
Клиент 1С 32 битный
Сервер 1С 64 битный
Серверная база на скуле.
На сервере 128 ГБ оперативки

Формирую отчет на СКД - успешно получаю выборку в 240 000 строк.
Ничего не меняя запускаю формирование отчета еще раз и система вываливается с нехваткой памяти. Открываю предприятие заново, опять формирую этот отчет точно так же - успешно выводится. Запускаю второй раз - падает с нехваткой памяти.

Пробовал делать так - сперва формирую большую выборку на 240 000 (формируется успешно), потом формирую с отборами так, что выборка на 20-50 000 элементов - формируется нормально. Затем снова делаю большую выборку - падает от нехватки памяти!

Такое ощущение, что какие-то данные не обнуляются, а накапливаются и приводят к переполнению.

Вопрос - почему ВТОРОЙ раз системе не хватает памяти? Куда капать?
 
 
   mzelensky
 
1 - 17.08.18 - 10:56
Сюда скидывать запрос пока не буду - он довольно большой + конфа не типовая.
   DrShad
 
2 - 17.08.18 - 11:01
капать на голову тому кто писал отчет
   mzelensky
 
3 - 17.08.18 - 11:20
(2) Еще идеи?
   Nikoss
 
4 - 17.08.18 - 11:22
(3) полное обслуживание базы сделай, со стороны SQL
   МешочекЗнаний
 
5 - 17.08.18 - 11:23
(0) Попробовать 1 раз сформировать, закрыть отчёт, а потом 2 раз сформировать .
   mzelensky
 
6 - 17.08.18 - 11:28
(5) Пробовал - на второй раз всегда вылетает
   mzelensky
 
7 - 17.08.18 - 11:29
(4) что имеется ввиду под "Полным" ?

Реиндексация
Реструктуризация
Проверка на ошибки

?
   mzelensky
 
8 - 17.08.18 - 11:42
Было подозрение, что система не очищает временные таблицы. Сделал явную очистку в запросе. Результат тот же.
   Nikoss
 
9 - 17.08.18 - 11:54
(7) про MSSQL не подскажу. Что-то типа - "Почистить базу от всякого дерьма"))
   mzelensky
 
10 - 17.08.18 - 11:57
(9) НУ и как ты советуешь, если сам не понимаешь что именно ты советуешь?
 
 Рекламное место пустует
   Nikoss
 
11 - 17.08.18 - 12:03
(10) что значит не понимаю? Я тебе посоветовал сделать полное обслуживание базы средствами SQL. Всё. Это может помочь, а может и не помочь, но все равно лишним не будет.
Как это сделать в MS, уж потрудись посмотреть в интернете.
   mzelensky
 
12 - 17.08.18 - 12:08
Получается следующее - когда запускаю первый раз на большую выборку, то процесс выедает 3200 Мб памяти, но при этом заканчивается успешно и выводит отчет. После этого Память так и висит "3200".

Запускаю после этого второй раз - память падает где-то до 1500 и потом нарастает до 2300 примерно и на этой цифре выпадает ошибка нехватки памяти.
   mzelensky
 
13 - 17.08.18 - 12:10
(11) Это называется -

- Доктор, у меня болит нога!
- Ну вот вам таблеточка от головы.
- Но ведь у меня болит не голова, а нога
- Ну ничего, хуже точно не будет, а том может и нога пройдет.
   Nikoss
 
14 - 17.08.18 - 12:11
(12) ты точно адекватную таблицу выводишь? 32-битный клиент совсем не резиновый.

И да про SQL возможно мимо совет, так как падает именно клиент, на сколько я понимаю.
   Вафель
 
15 - 17.08.18 - 12:11
отчет - просто СКД без кода?
   Nikoss
 
16 - 17.08.18 - 12:14
+(14) я понимаю, что вопрос в том почему именно во второй раз идет падение. Но тут скорее всего платформа просто что-то не очищает из памяти, и ничего ты с этим не сделаешь.
   mzelensky
 
17 - 17.08.18 - 12:14
(15) Был код, который запускал формирование СКД.

Ради теста убрал, оставил чистый запрос + типовую кнопку "сформировать" - результат абсолютно тот же.
   mzelensky
 
18 - 17.08.18 - 12:16
"Но тут скорее всего платформа просто что-то не очищает из памяти, и ничего ты с этим не сделаешь" 

- вот я тоже думаю, не дело ли в "8.2.19.130 в режиме совместимости с 8.1"
   Nikoss
 
19 - 17.08.18 - 12:18
(18) тут дело даже не в платформе. Просто у тебя выборка уже на грани максимума по памяти. Ты просто дождешься момент когда в ней будет 300 000 строк и она просто даже с первого раза не будет работать.
   mzelensky
 
20 - 17.08.18 - 12:21
все-равно не ясно. Почему при первой выборке память доходит до 3400, а во второй сыпется на 2300 ?
   kittystark
 
21 - 17.08.18 - 12:21
обновить платформу и запустить клиента х64 ?
   mzelensky
 
22 - 17.08.18 - 12:22
(21) Была такая идея, но это не в ближайшем будущем - много подготовительных работ
   kittystark
 
23 - 17.08.18 - 12:27
(22) помогает!
однако есть обратная сторона - раньше пользователь отваливался на мега отчетах, а сейчас как посмотришь
5 Гб процесс отожрал...
9.5 Гб...
рекорд был 14.5 Гб - и это на серваке с 32 Гб оперативки
   ildary
 
24 - 17.08.18 - 12:31
(23) простите моё любопытство, но что за данные выводил этот мега-отчёт? Продажи по всем магазинам Магнита в разрезе товаров и документов?
   mzelensky
 
25 - 17.08.18 - 12:33
(24) Информацию по дисконтным картам покупателей + накопления и продажи по ним.
   kittystark
 
26 - 17.08.18 - 12:38
(24) почти угадал :)
по всем товарам / по городам / по всем клиентам: прибыль/количество и в сравнении по годам за 3 года сразу

жесть :)
   Tonik992
 
27 - 17.08.18 - 12:40
(26) Эксперты в отделе аналитике сидят повидимому.
   Nikoss
 
28 - 17.08.18 - 12:46
(24) тут скорее вопрос, что потом с таким количеством буковИцифор делать в одном месте
   Nikoss
 
29 - 17.08.18 - 12:48
(20) там не так, это ты видишь 2300, а на сомом деле к этим 2300 вмиг 1С пытается добавить, к примеру, еще 2000 и досвидос. То что в диспетчере(ну или где смотришь) посекундно же, а в секунде еще 1000 миллисекунд есть.
   Юрий Юрьевич
 
30 - 17.08.18 - 12:55
в параметрах кластера сервера 1С Предприятия есть Режим распределения нагрузки - Приоритет по памяти или по производительности; как правило приоритет по памяти позволяет вытягивать значительно большие нагрузки. Но это все конечно про 8.3.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Компьютер — устройство разработанное для ускорения и автоматизации человеческих ошибок.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует