Oracle XML и требования по памяти
От: fmiracle  
Дата: 28.05.10 07:53
Оценка:
Может ли кто подсказать, сколько памяти требуется для Oracle (версии 9.2, 10, 11) для разбора XML в зависимости от размера\структуры файла?

Никогда не общался ранее с XMLType в Oracle, а тут столкнулся в лоб.

Проблема — необходимо загружать объемные данные из XML в Oracle и уже есть хорошее решение, которое надо лишь немного доработать. Решение использует XMLType и его возможности. Однако, решение использовалось для файлов совсем небольшого размера. Теперь же требуется загрузка файлов в 50-80Мегабайт (структура достаточно простая — почти линейные данные, иерархия на 2 уровня всего), и на парсинге такого файла Оракл бодро отъедает 600метров из доступных 2Гб и падает с out of memory (что тоже не очень понятно — вроде и память есть еще).

Пытался найти какие-то оценки сколько надо памяти для разбора такого файла — не нашел

Собственно, мне надо понять можно ли какими-то настройками рассказать Ораклу что доступной памяти больше чем эти 600 метров и, второе, заиметь какую-то примерную оценку верхней границы потреблямой памяти, которой ему хватит для нашего самого большого возможного файла, чтобы понять, проходит это решение по требованиям к железу или нет...
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re: Oracle XML и требования по памяти
От: wildwind Россия  
Дата: 28.05.10 08:19
Оценка:
Здравствуйте, fmiracle, Вы писали:

F>Может ли кто подсказать, сколько памяти требуется для Oracle (версии 9.2, 10, 11) для разбора XML в зависимости от размера\структуры файла?


Определяется экспериментально. Что, в общем-то, уже проделано

F>Собственно, мне надо понять можно ли какими-то настройками рассказать Ораклу что доступной памяти больше чем эти 600 метров


Можно. Но подумайте, ваша БД будет обслуживать только загрузку файлов и только от одной сессии? Другим сессиям тоже нужна память (поэтому всю и не отдает). Если вы вместо DBA, читайте про управление памятью, в частности PGA (память для парсинга XML берется оттуда). В перечисленных версиях механизмы сильно различаются и много тонкостей.

F>второе, заиметь какую-то примерную оценку верхней границы потреблямой памяти, которой ему хватит для нашего самого большого возможного файла,


Экспериментально.

Либо переходить на другое решение. Например Java+SAX.
Re[2]: Oracle XML и требования по памяти
От: fmiracle  
Дата: 28.05.10 08:46
Оценка:
Здравствуйте, wildwind, Вы писали:

F>>Собственно, мне надо понять можно ли какими-то настройками рассказать Ораклу что доступной памяти больше чем эти 600 метров


W>Можно. Но подумайте, ваша БД будет обслуживать только загрузку файлов и только от одной сессии? Другим сессиям тоже нужна память (поэтому всю и не отдает). Если вы вместо DBA, читайте про управление памятью, в частности PGA (память для парсинга XML берется оттуда). В перечисленных версиях механизмы сильно различаются и много тонкостей.


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

W>Либо переходить на другое решение. Например Java+SAX.


Да это бы я с радостью сделал на .NET (разбор этих xml это только часть более большого решения), но тут стойкое пожелание заказчика — что уже есть решение на Oracle/XMLType и пусть вторая часть, которая очень похожа, будет сделана аналогично для простоты поддержки и сопровождения (что, конечно, не лишено смысла).

Собственно, и хочется понять требования по памяти, чтобы понять (и обосновать), не надо ли срочно переключаться на альтернативы.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re[3]: Oracle XML и требования по памяти
От: wildwind Россия  
Дата: 28.05.10 09:16
Оценка:
Здравствуйте, fmiracle, Вы писали:

F>Да это бы я с радостью сделал на .NET (разбор этих xml это только часть более большого решения), но тут стойкое пожелание заказчика — что уже есть решение на Oracle/XMLType и пусть вторая часть, которая очень похожа, будет сделана аналогично для простоты поддержки и сопровождения (что, конечно, не лишено смысла).


Согласен, смысл есть. Я под "Java+SAX" подразумевал парсинг на стороне Oracle, но средствами встроенной Java (XMLType парсит только в DOM). Может можно переделать только эту часть решения и таким образом снизить требования к памяти.

F>Собственно, и хочется понять требования по памяти, чтобы понять (и обосновать), не надо ли срочно переключаться на альтернативы.


Тогда просите стенд сравнимой конфигурации, "самые большие файлы" и экспериментируйте. Наблюдайте за статистикой сессии 'session pga memory max'. Кстати, помимо памяти парсинг больших XML-ей еще и CPU хорошо кушает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.