Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[oracle] blob o file system?

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

[oracle] blob o file system?

Postdi pjfry » 19/07/07 10:38

in una web application dobbiamo permettere agli utenti di allegare dei file di vari formati e dimensioni.
Stiamo valutando se salvare i file su file system, mettendo solo il path del file in tabella, oppure utilizzare il tipo BLOB di oracle.
Dopo varie ricerce sembra che la scelta migliore sia la seconda, ma se avete esperienze in merito mi piacerebbe parlarne.
Inoltre vorrei qualche dettaglio su come oracle gestisce i BLOB, ho un po' di confusione in merito:
- c'è uno o più tablespace appositi, e in tabella viene salvato solo un 'puntatore'?
- il dbms si occupa anche di comprimere il file oppure salva esattamente il flusso di byte che gli si passa?
- le velocità di lettura e scrittura sono paragonabili a quelle su file system?

altra cosa: dovendo leggere e scrivere i file tramite java (spring + hibernate), avete idee o esperienza riguardo la memoria utilizzata nell'application server? cioè, se l'utente mi fà l'upload di un file da 1GB, dove viene memorizzato prima di finire nel database? c'è la possibilità di gestirlo come 'stream' (immagino di si, ma vorrei conferme :D ) o ci sarà un momento in cui tutto il file è in memoria :eeh: ?

grazie
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Sponsor
 

Postdi archimede » 19/07/07 11:15

Blob tutta la vita, IMHO: non mi viene in mente un singolo vantaggio che possa darti l'uso del file system.

Per quanto riguarda la gestione, puoi trattarli come un campo qualsiasi, ma normalmente viene creata una tablespace apposita per lo storage. Compressioni non credo ne avvengano e le prestazioni non mi risultano essere penalizzate rispetto al file system (anche se 1GB di upload... gasp!).

Purtroppo non ho esperienze in Java, per cui sull'ultimo punto non posso commentare.

HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi pjfry » 19/07/07 11:19

beh chiaramente mi batterò per mettere un limite massimo alla dimensione dei file :lol:

grazie :)
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi tekanet » 19/07/07 15:35

Io uso SQL Server ma credo il discorso sia simile. I blob non vengono compressi, ma puoi comprimere il flusso di bytes prima di inviarlo al server, nel caso. Nella mia esperienza è decisamente più veloce il blob.
Spesso però mi trovo ad usare il filesystem, per maggiore gestibilità dei files stessi (backup, ispezione ad esempio). Se non hai problemi di spazio e te ne sbatti della gestibilità o non riscontri questo problema, vai col blob :D
tK
tekanet
Utente Senior
 
Post: 173
Iscritto il: 03/09/02 10:22
Località: Milano sud-ovest

Postdi archimede » 19/07/07 16:40

tekanet ha scritto:Spesso però mi trovo ad usare il filesystem, per maggiore gestibilità dei files stessi (backup, ...
Questa non l'ho capita: come fa il file system a darti dei vantaggi quando facendo il backup del db (che comunque devi fare, suppongo) copi tutto in un sol colpo?

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi BianConiglio » 19/07/07 17:10

BLOB
BianConiglio
Utente Senior
 
Post: 4710
Iscritto il: 26/12/01 01:00
Località: Varese / Lugano

Postdi cg » 05/08/07 15:51

archimede ha scritto:Blob tutta la vita, IMHO: non mi viene in mente un singolo vantaggio che possa darti l'uso del file system.

Ciao. Anch'io mi trovo di fronte allo stesso dubbio.

La piattaforma che sto utilizzando è PHP/MySQL (sono alle prime armi :( ), e quindi ti chiedo: vale lo stesso discorso anche per MySQL?

Leggevo che il rapporto tra la quantità di ram a disposizione del server database e la dimensione del database stesso è di fondamentale importanza per le prestazione. Quindi per utilizzare il BLOB è necessaria una macchina con una buona dotazione di ram. Sbaglio?
cg
Utente Junior
 
Post: 26
Iscritto il: 05/08/07 13:33

Postdi archimede » 06/08/07 08:43

cg ha scritto:vale lo stesso discorso anche per MySQL?
Non uso MySQL, per cui non saprei dirti.
cg ha scritto:Leggevo che il rapporto tra la quantità di ram a disposizione del server database e la dimensione del database stesso è di fondamentale importanza per le prestazione.
Non sono un esperto, ma messa così mi puzza di bufala. Sarebbe come dire che un PC deve essere tanto più potente quanto più grande è il suo HD: non è la quantità di dati in sè a influenzare le prestazioni ma la frequenza con cui questi vengono letti o aggiornati.

Naturalmente quanti più dati hai a disposizione tanto maggiore si suppone che sia il numero di utenti che li usano e il numero di operazioni che fanno, ergo avrai bisogno di più RAM e più potenza di calcolo.

HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi mrblue » 06/08/07 10:16

banalmente maggiore ram dai al dbserver meglio andrà ;)
qui un buon articolo in merito
Sbagliare è umano, ma per riuscire davvero a incasinare completamente le cose ci vuole un computer.
---------------------
http://mrblue73.blogspot.com/
mrblue
Utente Senior
 
Post: 364
Iscritto il: 22/10/01 01:00
Località: Roma


Torna a Programmazione


Topic correlati a "[oracle] blob o file system?":


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite