Jdbc Resultset zu gross
Hallo,
Ich versuche Videos in die Datenbank zu speichern, dazu wird bytea
verwendet das ganze läuft unter Java mit dem aktuellsten JDBC Treiber. =
Beim
Speichern gibts keine Probleme, aber beim Auslesen.
Wenn man versucht das Video aus der Datenbank auszulesen, dann steigt
der Specherverbrauch des Resultset fast auf das dreifache des Videos an.
Ich habe bisschen nachgeforscht und rausgefunden, dass es an dem JDBC
Treiber liegt, da dieser intern mit Unicode arbeitet.
Jetzt die frage besteht ne möglichkeit den Treiber dazu zu bewegen nich=
t
mit Unicode sondern mit SQL_Ascii zu arbeiten?
Mit freundlichen Grüßen
Andrej Doumack
---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo [at] postgresql.org so that your
message can get through to the mailing list cleanly
Re: Jdbc Resultset zu gross
Andrej Doumack <a.doumack [at] wap3.net> schrieb:
> Hallo,
> Ich versuche Videos in die Datenbank zu speichern, dazu wird bytea
Keine Lösung, aber eine Frage:
Ist das wirklich nötig? Wäre die Speicherung des Videos im Filesystem
und nur die Speicherung des Pfades plus eventueller Metadaten in der DB
eine Lösung?
Andreas
--
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect. (Linus Torvalds)
Kaufbach, Saxony, Germany, Europe. N 51.05082=B0, E 13.56889=
=B0
---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq
Re: Jdbc Resultset zu gross
--On Freitag, Dezember 09, 2005 13:18:44 +0100 Andrej Doumack
<a.doumack [at] wap3.net> wrote:
> Wenn man versucht das Video aus der Datenbank auszulesen, dann steigt der
> Specherverbrauch des Resultset fast auf das dreifache des Videos an.
> Ich habe bisschen nachgeforscht und rausgefunden, dass es an dem JDBC
> Treiber liegt, da dieser intern mit Unicode arbeitet.
>
> Jetzt die frage besteht ne möglichkeit den Treiber dazu zu bewegen nicht
> mit Unicode sondern mit SQL_Ascii zu arbeiten?
Hmm ich glaube ich verstehe nicht richtig, aber der eigentliche Sinn an
bytea ist ja gerade, dass er von irgendwelchen Encodings und Locales
unangetastet bleibt (Stichwort Binärstring)....ich vermute jetzt mal, du=
behandelst das Auslesen der bytea-Spalten nicht mit getBytes() o.ä.?
--
Thanks
Bernd
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster
Re: Jdbc Resultset zu gross
--On Freitag, Dezember 09, 2005 16:46:38 +0100 Andreas Kretschmer
<akretschmer [at] spamfence.net> wrote:
> Andrej Doumack <a.doumack [at] wap3.net> schrieb:
>
>> Hallo,
>> Ich versuche Videos in die Datenbank zu speichern, dazu wird bytea
>
> Keine Lösung, aber eine Frage:
>
> Ist das wirklich nötig? Wäre die Speicherung des Videos im Filesystem
> und nur die Speicherung des Pfades plus eventueller Metadaten in der DB
> eine Lösung?
Vielleicht, aber hierzu noch soviel:
Ich habe mir auch mal vor längerem den Jux erlaubt, aus PostgreSQL heraus=
zu "streamen", d.h Videos abzulegen und von dort aus auszulesen (um es
bspw. an mplayer zu pipen). Am besten verwendet man hierbei das
lo-interface, denn es gestattet, in den BLOBs wahlfrei ab einer bestimmten=
Position heraus Blöcke auszulesen bzw. zu schreiben. Bytea bietet leider=
keine deartige Vorzüge, aber das Auslesen läßt sich optimieren, wenn =
man
die bytea Spalte in einen EXTERNAL Speichertyp umwandelt, womit man dann
z.B. mittels substring() eine seek-Operation emulieren kann.....Ob das
jetzt alles sinnvoll ist, sei mal dahingestellt.
--
Thanks
Bernd
---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo [at] postgresql.org so that your
message can get through to the mailing list cleanly
Re: Jdbc Resultset zu gross
Bernd Helmle schrieb:
>
>
> --On Freitag, Dezember 09, 2005 13:18:44 +0100 Andrej Doumack
> <a.doumack [at] wap3.net> wrote:
>
>> Wenn man versucht das Video aus der Datenbank auszulesen, dann steigt
>> der
>> Specherverbrauch des Resultset fast auf das dreifache des Videos an.
>> Ich habe bisschen nachgeforscht und rausgefunden, dass es an dem JDBC
>> Treiber liegt, da dieser intern mit Unicode arbeitet.
>>
>> Jetzt die frage besteht ne möglichkeit den Treiber dazu zu bewegen n=
icht
>> mit Unicode sondern mit SQL_Ascii zu arbeiten?
>
>
> Hmm ich glaube ich verstehe nicht richtig, aber der eigentliche Sinn
> an bytea ist ja gerade, dass er von irgendwelchen Encodings und
> Locales unangetastet bleibt (Stichwort Binärstring)....ich vermute
> jetzt mal, du behandelst das Auslesen der bytea-Spalten nicht mit
> getBytes() o.ä.?
>
Das ist ja das Problem liegt nochmal davor. Wenn man von der
executeQuery Resultset bekommt ist Resultset 3x so gross wie das Video.
In den englischen Foren hat einer der Entwickler gemeint, dass es
richtig ist, da jdbc intern mit Unicode arbeitet deswegen ist Resultset
so gross. Ich wollte jetzt wissen ob man das ändern kann.
---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq
Re: Jdbc Resultset zu gross
Bernd Helmle schrieb:
> --On Freitag, Dezember 09, 2005 16:46:38 +0100 Andreas Kretschmer
> <akretschmer [at] spamfence.net> wrote:
>
>> Andrej Doumack <a.doumack [at] wap3.net> schrieb:
>>
>>> Hallo,
>>> Ich versuche Videos in die Datenbank zu speichern, dazu wird bytea
>>
>>
>> Keine Lösung, aber eine Frage:
>>
>> Ist das wirklich nötig? Wäre die Speicherung des Videos im Filesys=
tem
>> und nur die Speicherung des Pfades plus eventueller Metadaten in der D=
B
>> eine Lösung?
>
>
> Vielleicht, aber hierzu noch soviel:
>
> Ich habe mir auch mal vor längerem den Jux erlaubt, aus PostgreSQL
> heraus zu "streamen", d.h Videos abzulegen und von dort aus auszulesen
> (um es bspw. an mplayer zu pipen). Am besten verwendet man hierbei das
> lo-interface, denn es gestattet, in den BLOBs wahlfrei ab einer
> bestimmten Position heraus Blöcke auszulesen bzw. zu schreiben. Bytea=
> bietet leider keine deartige Vorzüge, aber das Auslesen läßt sich=
> optimieren, wenn man die bytea Spalte in einen EXTERNAL Speichertyp
> umwandelt, womit man dann z.B. mittels substring() eine seek-Operation
> emulieren kann.....Ob das jetzt alles sinnvoll ist, sei mal
> dahingestellt.
>
>
>
Ich test es mal mit den LargeObjects aber da gibts wieder einen größe=
ren
Aufwand beim Backup von der Datenbank wie ich das mitbekommen habe.
---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?
http://archives.postgresql.org
Re: Jdbc Resultset zu gross
Andreas Kretschmer schrieb:
>Andrej Doumack <a.doumack [at] wap3.net> schrieb:
>
>
>
>>Hallo,
>>Ich versuche Videos in die Datenbank zu speichern, dazu wird bytea
>>
>>
>
>Keine Lösung, aber eine Frage:
>
>Ist das wirklich nötig? Wäre die Speicherung des Videos im Filesyste=
m
>und nur die Speicherung des Pfades plus eventueller Metadaten in der DB
>eine Lösung?
>
>
>Andreas
>
>
Das hatten wir vorher, aber wollen jetzt alle Daten in eine Datenbank
speichern.
---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo [at] postgresql.org so that your
message can get through to the mailing list cleanly