Текущее время: Пн, авг 11 2025, 19:04

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Загрузка и нехватка internal storage
СообщениеДобавлено: Ср, окт 14 2009, 10:17 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, апр 25 2006, 15:14
Сообщения: 280
При загрузке данных в куб, возникает ошибка о нехватке места для внутренних таблиц "No roll storage space of length 2965512 available for internal storage.
" ошибка TSV_TNEW_BLOCKS_NO_ROLL_MEMORY.
Происходит это когда в start routine куба выполняется такой вот select

Code:
SELECT *                                           
INTO CORRESPONDING FIELDS OF TABLE lt_dso           
FROM /BIC/AFLINVM200 AS idso                       
FOR ALL ENTRIES IN SOURCE_PACKAGE                   
WHERE idso~/BIC/YMBLNR = SOURCE_PACKAGE-/BIC/YMBLNR
AND idso~DOC_ITEM = SOURCE_PACKAGE-DOC_ITEM         
AND idso~DOC_YEAR = SOURCE_PACKAGE-DOC_YEAR         
AND idso~BWCOUNTER = SOURCE_PACKAGE-BWCOUNTER.     


В общем, ничего особенного, нужно читать все данные которые соотв. тем что в source package.
Данных в DSO довольно много, соответсвенно понятно почему такая ошибка может возникать. Увеличить место для внутреннего хранилища на севервере пока невозможно, соотв. нужно искать другое решение.
Вопрос - можно ли как-нибудь изменить размер source package? Если можно, то где?
Я пытался менять размер пакета в DTP, однако это никак не влияет (по умолчанию стоит 50.000, ставил 20.000 и 5.000 и даже 1.000, ошибка одна и та же почти мгновенно после запуска).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка и нехватка internal storage
СообщениеДобавлено: Ср, окт 14 2009, 12:41 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, июл 03 2007, 10:26
Сообщения: 486
Откуда: Kazakhstan, Astana
Пол: Мужской
1. Не забывайте к тому же проверять Internal Table на условие IS INITIAL.
Code:
  IF itab[] IS INITIAL.
      ....
  ENDIF.


Вы используете FOR ALL ENTRIES IN если вы не проверяете на условие IS INITIAL, то будут считаны все записи. Кроме того без этой проверки не будет уверенности, что переменная глобального кэша была заполнена корректна предыдущим пакетом.
2. Можно ли изначально грузить данные частями? Например не по годам, а помесячно?

_________________
"Great minds discuss ideas. Average minds discuss events. Small minds discuss people-Eleanor Roosevelt--Knowledge is to share, Keep it free, Keep sharing"


Последний раз редактировалось BORLAND Ср, окт 14 2009, 12:58, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка и нехватка internal storage
СообщениеДобавлено: Ср, окт 14 2009, 12:57 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, апр 25 2006, 15:14
Сообщения: 280
Частями было бы хорошо. Но в фильтре никакие значения по датам недоступны (даже непонятно каким образом выбираются поля в фильтр DTP). А менять start routine и там фильтровать.. как-то даже не знаю.. в смысле поменять start routine на определённый диапазон дат, прогрузить, потом следующий и т.п.? :?

А чем поможет is initial в данном случае?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка и нехватка internal storage
СообщениеДобавлено: Ср, окт 14 2009, 13:12 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, июл 03 2007, 10:26
Сообщения: 486
Откуда: Kazakhstan, Astana
Пол: Мужской
1.
Цитата:
Но в фильтре никакие значения по датам недоступны
.
Я потому и сказал что изначально возможно ли ограничить диапазон загрузки. Уж если нельзя увеличить память, то копайте в сторону уменьшения исходной выборки данных, и по пакетам.
2.
Цитата:
А менять start routine и там фильтровать.. как-то даже не знаю.. в смысле поменять start routine на определённый диапазон дат, прогрузить, потом следующий и т.п.?

Хмм, тот кто будет потом сопровождать систему хорошим словом не помянет. :D Однозначно нет.
3.
Цитата:
А чем поможет is initial в данном случае?

Смотри выше.

_________________
"Great minds discuss ideas. Average minds discuss events. Small minds discuss people-Eleanor Roosevelt--Knowledge is to share, Keep it free, Keep sharing"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка и нехватка internal storage
СообщениеДобавлено: Ср, окт 14 2009, 13:45 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, дек 23 2008, 17:09
Сообщения: 315
Имхо, пояснить бы задачу. Неясно чем вызвана необходимость зачитать во внутреннюю таблицу сразу все. :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Загрузка и нехватка internal storage
СообщениеДобавлено: Ср, окт 14 2009, 13:49 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, апр 25 2006, 15:14
Сообщения: 280
В этом плане IS INITIAL проверяется..

Вот именно в этом и вопрос - как уменьшить размер пакета. Я так понял что опция Package size указанная в DTP, никакого отношения к этому не имеет, это какая-то чисто техническая характеристика, уменьшал и увеличивал результат один и тот же. Вся проблема в собственно размере внутренней таблицы SOURCE_PACKAGE, почему-то данные считанные по ключу из SOURCE_PACKAGE в другую внутреннюю таблицу, уже не не помещаются в памяти. Как менять её размер и загружать пакетами или фильтровать порциями по возрастанию - непонятно :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка и нехватка internal storage
СообщениеДобавлено: Ср, окт 14 2009, 13:55 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, апр 25 2006, 15:14
Сообщения: 280
Online написал(а):
Имхо, пояснить бы задачу. Неясно чем вызвана необходимость зачитать во внутреннюю таблицу сразу все. :)


Задача довольно неинтересна чтобы пояснять подробно и ничего это не прояснит. Это было сделано до меня якобы для "увеличения производительности", потом в рутинах при обновлении конкретных полей читается каждый раз именно внутренняя таблица а не делается каждый раз SELECT. Причём для меня это не особо аргумент, если SELECT обычный и не вложенный, он порядочно кешируется и толку от переписывания его результата во внутреннюю таблицу - не много. На самом деле, этого селекта который читал всё, уже нет. Но за ним есть ещё один, нечто вроде первого но вложенный и с условиями - читает в таблицу далеко не всё, и даже не половину. Но даже в этом случае есть переполлнение. Менять его и менять логику возможности как бы нет. Всё сводится к тому что надо как-то фильтровать размер SOURCE_PACKAGE, номерами пакетов, датами, чем-нибудь. Но как это сделать - непонятно.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка и нехватка internal storage
СообщениеДобавлено: Ср, окт 14 2009, 14:52 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, дек 23 2008, 17:09
Сообщения: 315
Возможно, глупость, но я бы проверил tablespace.
Еще смущает величина 2965512, она далека как от того объема, который обычно может быть выделен под внутреннюю таблицу, так и от предполагаемой максимальной длины селекта.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Загрузка и нехватка internal storage
СообщениеДобавлено: Ср, окт 14 2009, 14:56 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, апр 25 2006, 15:14
Сообщения: 280
Online написал(а):
Возможно, глупость, но я бы проверил tablespace.
Еще смущает величина 2965512, она далека как от того объема, который обычно может быть выделен под внутреннюю таблицу, так и от предполагаемой максимальной длины селекта.


Это в первую очередь было проверено. Ответили что для того чтобы это изменить, нужно перезагружать сервер, а в данный момент сделать невозможно.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка и нехватка internal storage
СообщениеДобавлено: Чт, окт 15 2009, 10:22 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, авг 18 2004, 09:17
Сообщения: 477
Откуда: Москва
Пол: Мужской
Кусок программы из дампа приведите.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка и нехватка internal storage
СообщениеДобавлено: Пн, окт 19 2009, 14:18 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, апр 25 2006, 15:14
Сообщения: 280
Дмитрий написал:
Кусок программы из дампа приведите.


SQL запрос тот что выше написан и есть тот самый кусок программы на который указывал дамп. Каким-то образом памяти сервера не хватает чтобы заполнить таблицу анологичную размеру таблицы SOURCE_PACKAGE?
Перед запросом есть проверка типа IF SOURCE_PACKAGE IS NOT INITIAL.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка и нехватка internal storage
СообщениеДобавлено: Пн, окт 19 2009, 16:30 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, авг 18 2004, 09:17
Сообщения: 477
Откуда: Москва
Пол: Мужской
Памяти не хватает, потому что параметры системы, например roll_area у вас выставлены соответствующим образом. В данном конкретном случае вам не хватило ~3Мб.
Что можно сделать, если никак не изменить параметры? Потреблять меньше памяти. В частности, под внутренние таблицы.
К сожалению, очень мало информации. Стоило бы обратить внимание на lt_dso. Возможно, стоит проанализировать ее структуру и оставить там только реально необходимые поля, select * заменить на список полей.
Посмотрите where-условие. В DSO, из активной таблицы которого идет чтение данных, ключ специфицирован полностью? Положительный ответ гарантирует, что записей в результате запроса будет не больше, чем в source_package.
Также проверьте перед этим оператором select никакие внутренние таблицы больше не заполняются и не определяются ли с тысячами записей в подпрограмме запуска?
Попробуйте ради эксперимента удалить перед селектом записи в source_package, оставив 100, например. Потом постепенно увеличивая количество записей. Так опытным путем найдете количество записей при которых система не падает.
И еще select single вам в помощь. Скорость загрузки потеряете, но зато с памятью будет все ok. :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка и нехватка internal storage
СообщениеДобавлено: Пн, окт 19 2009, 17:12 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, апр 25 2006, 15:14
Сообщения: 280
Помогла замена IF SOURCE_PACKAGE IS NOT INITIAL на IF SOURCE_PACKAGE[] IS NOT INITIAL. Правда нихрена непонятно почему, никаких хеадер-лайнов в том типе таблицы уже нет, и когда дебагил ещё раньше, проверка на пустую таблицу работала и без скобочек.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB