Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
В общем что-то никак не получается решить одну проблемку... В общем нужно хранить файлы в базе....запись в таблицу происходит нормально, но когда пытаюсь вытащить эту запить, происходит такая фигня... bytea хранит данные(и собственно возвращает) грубо говоря в своем представлении, соответственно после выборки нужно эти данные нормализовать, пишется это на jsp у меня 1 - logger.ToLog("Try Convert to stream"); 2 - InputStream strm=new ByteArrayInputStream(org.postgresql.util.PGbytea.toBytes(rs.getBytes(1))); 3 - logger.ToLog("Successfull Convert to stream"); вот, и если файл размером где то больше 3мб то просто виснет в строке номер 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 11:01 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
ладно, конвертировать не стал... теперь например залил файл размером 22мб и теперь виснет здесь logger.ToLog("Try:"+s1); ResultSet rs=st.executeQuery(s1); logger.ToLog("returns:"+s1); на второй строке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 12:05 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
Форумом не ошиблись? Если не ошиблись, то покажите всю процедуру загрузки/выгрузки данных и настройки java? Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 12:28 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
может и ошибся....просто с явой и jsp работаю только вторую неделю записываю в базу так ps = db.prepareStatement( "insert into attachments(attID, attValue) "+ " values (?,?)" ); ps.setInt(1, v_id); ps.setBinaryStream(2, (data), (int)att.getSize());//data - InputStream ps.executeUpdate(); читаю так String s1= ("SELECT attValue from attachments where AttID="+ getAttachmentID(att)); logger.ToLog("Try:"+s1); ResultSet rs=st.executeQuery(s1); //виснет тут logger.ToLog("returns:"+s1); по поводу настройки java к сожалению ничего не могу сказать работает это все под TomCat ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 12:36 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
запрос того же чисто из под PGAdmin конечно тоже не летает, но вроде как работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 12:38 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
причем в когда идет ну запрос...вначале машина загружается....а потом по нулям..... и ни в какое исключение не вываливается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 12:39 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
Какая версия постгреса? (У меня, например, наблюдались подобные задержки в версиях до 8.2. Правда, только при загрузке данных на сервер) Что видно в логах постгреса? Нормально ли выполняется подобный запрос на чтение из psql? P.S. Яве может банально не хватать памяти, но это не тебя для обсуждений на этом форуме ;) Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 12:55 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
постгрес 8.2 вот лог его DEBUG: parse <unnamed>: SELECT attValue from wikiattachments where AttID=12 STATEMENT: SELECT attValue from wikiattachments where AttID=12 DEBUG: StartTransactionCommand STATEMENT: SELECT attValue from wikiattachments where AttID=12 DEBUG: StartTransaction STATEMENT: SELECT attValue from wikiattachments where AttID=12 DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 41170/1/0, nestlvl: 1, children: <> STATEMENT: SELECT attValue from wikiattachments where AttID=12 DEBUG: bind <unnamed> to <unnamed> про параметры явы к сожалению ничего сказать не могу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 14:29 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
из PGAdmin запрос выполняется....долго, отжирает памяти много, но выполняется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 14:52 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
За отсутствием данных для анализа будем считать, что яве просто не хватает памяти ;) Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 16:10 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
а не подскажете где об этих данных можно вычитать..... а то у меня кроме "Thinking in Java, 2nd Edition" ничего нет больше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 16:15 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
Такие вопросы задают обычно тут http://www.sql.ru/forum/actualtopics.aspx?bid=38 Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 16:17 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
задал там....только пока все молчат, как партизаны:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 16:28 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
ResultSet для INSERT вроде какой-то только в 8.3 появился... диагноз - читать доки по JDBC http://jdbc.postgresql.org/documentation/82/index.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 16:50 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
извиняюсь... сегодня не внимателен... глючу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2008, 19:35 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
в общем проблема пока решилась......установлением максимальной кучи у томкэта в 1гб.......... .......правда попытавшись запихнуть в базу файл размером 450Мб PSQL отказался это делать, сославшись на ошибку памяти.......времени просто не хватило, завтра продолжу... но все таки насторожило, то, что запихивая в базу блоб размером 450мб, получаем отжирание памяти постгресом больше 1ГБ.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2008, 21:40 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
roman83в общем проблема пока решилась......установлением максимальной кучи у томкэта в 1гб. ......... .......правда попытавшись запихнуть в базу файл размером 450Мб PSQL отказался это делать, сославшись на ошибку памяти.......времени просто не хватило, завтра продолжу... но все таки насторожило, то, что запихивая в базу блоб размером 450мб, получаем отжирание памяти постгресом больше 1ГБ....Если проблема решилась изменением настроек томката, то почему вы считаете, что память отжирает постгрес, а не джава? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2008, 22:05 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
roman83в общем проблема пока решилась......установлением максимальной кучи у томкэта в 1гб.......... .......правда попытавшись запихнуть в базу файл размером 450Мб PSQL отказался это делать, сославшись на ошибку памяти.......времени просто не хватило, завтра продолжу... но все таки насторожило, то, что запихивая в базу блоб размером 450мб, получаем отжирание памяти постгресом больше 1ГБ.... 450 метров - это круто. Может не стоит этого делать? Например есть вариант, что на этапе передачи экранируются спец символы и объём комманды лёгко увеличивается в 2-3 раза. Вот Вам и 1.5 гига. Это не считая других нагрузочных проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 11:42 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
Andrey DaeronМожет не стоит этого делать? +1 В постгресе есть такая штука как LargeObject. Попробуйте её. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 11:48 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
pamir roman83в общем проблема пока решилась......установлением максимальной кучи у томкэта в 1гб. ......... .......правда попытавшись запихнуть в базу файл размером 450Мб PSQL отказался это делать, сославшись на ошибку памяти.......времени просто не хватило, завтра продолжу... но все таки насторожило, то, что запихивая в базу блоб размером 450мб, получаем отжирание памяти постгресом больше 1ГБ....Если проблема решилась изменением настроек томката, то почему вы считаете, что память отжирает постгрес, а не джава? TaskManager сказал ps....а вообще уж эксперименты с такики объемами делал так, ради личного интереса.... ограничения в 100бм хватит с головой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 13:58 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
roman83 ps....а вообще уж эксперименты с такики объемами делал так, ради личного интереса.... ограничения в 100бм хватит с головой О! А можно тут поподробнее, например сколько сожрал постгрес при засовывании в него 100МБ? И как при этом выглядел запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 14:51 |
|
||
|
Вытащить bytea из таблицы
|
|||
|---|---|---|---|
|
#18+
Andrey Daeron roman83 ps....а вообще уж эксперименты с такики объемами делал так, ради личного интереса.... ограничения в 100бм хватит с головой О! А можно тут поподробнее, например сколько сожрал постгрес при засовывании в него 100МБ? И как при этом выглядел запрос? в понедельник предоставлю код... а вообще вытаскивал PreparedStatment-ом что-то вроде select blob_field from table where blob_id=some_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 21:09 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=35135274&tid=2004607]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 367ms |

| 0 / 0 |
