961 messaggi dal 29 aprile 2002
ciao, cerco di essere quanto + breve possibile:
Ho una classe che istanzio in una pagina, tra i le varie property ce ne sono due di tipo byte[] che contengono i dati di una campo image di sql server. Sono delle immagini che devo visualizzare. Di solito per mostrare una immagine con dati provenienti da un campo blob del db faccio puntare l'url dell'immagine ad una pagina dove faccio il Response.BinaryWrite() del dato binario, non prima ovviamente di aver recuperato il dato da questa stessa pagina. Questa volta la cosa è diversa. Il dato già ce l'ho. E rifare la connessione al database per recuperare l'immagine è veramente uno spreco. L'ideale sarebbe quello di poter passare lo stato della prima pagina sulla pagina che fà il Response.BinaryWrite(). Ma se questo non è possibile, c'è un qualche altro metodo? Ovviamente ho pensato anche alla possibilità di mettere l'oggetto o parte di esso (solo il campo byte[]) in una session.. ma.. porca miseria non è proprio una cosa bella..
Ciao,

due sole osservazioni:

1. non è cosigliabile salvare le immagini in db. Meglio salvarle sul filesystem e inserire in db il solo riferimento.

2. Non so che db utilizzi ma in ogni caso dai un occhio al connection pooling.

Fabrizio Canevali
961 messaggi dal 29 aprile 2002
fabrica ha scritto:
Ciao,

due sole osservazioni:

1. non è cosigliabile salvare le immagini in db. Meglio salvarle sul filesystem e inserire in db il solo riferimento.

2. Non so che db utilizzi ma in ogni caso dai un occhio al connection pooling.

grazie per aver risposto, il db è sql server.. l'ho omesso scusa :(
cmq se non è consigliabile allora mi spiego perchè una cosa esiste ;)
ora dò un'occhiata al connection pooling, ma mi puoi spiegare perchè? cioè a cosa punti?
cmq se non è consigliabile allora mi spiego perchè una cosa esiste ;)
E' un po come dire che sicomme esisto in finocchi lo siamo tutti !
I campi blob in db vanno usati con estrema accuratezza visto che in genere vengono scaricate notevoli quantita di byte.

ora dò un'occhiata al connection pooling, ma mi puoi spiegare perchè? cioè a cosa punti?
Indendo dire che una volta richiesta la connessione al db hai già dedicato al client un bel po di risorse (1 mb / client - per sql server) e quindi una select in più o in meno non fa difetto.


http://www.sql-server-performance.com/sk_connection_pooling_myths.asp

Fabrizio Canevali
961 messaggi dal 29 aprile 2002
fabrica ha scritto:
cmq se non è consigliabile allora mi spiego perchè una cosa esiste ;)
E' un po come dire che sicomme esisto in finocchi lo siamo tutti !
I campi blob in db vanno usati con estrema accuratezza visto che in genere vengono scaricate notevoli quantita di byte.

ora dò un'occhiata al connection pooling, ma mi puoi spiegare perchè? cioè a cosa punti?
Indendo dire che una volta richiesta la connessione al db hai già dedicato al client un bel po di risorse (1 mb / client - per sql server) e quindi una select in più o in meno non fa difetto.


http://www.sql-server-performance.com/sk_connection_pooling_myths.asp

cioè praticamente intendi dire che facendo uso della stessa connessione è indifferente il fatto di fare o meno un'altra query ?
Più o meno si..., è assolutamente necessario/obbligatorio disposare la connessione il prima possibile.
Il discorso comunque è molto lungo e complesso, dai un occhiata al link che ho postato.

Fabrizio Canevali
961 messaggi dal 29 aprile 2002
fabrica ha scritto:
Più o meno si..., è assolutamente necessario/obbligatorio disposare la connessione il prima possibile.
Il discorso comunque è molto lungo e complesso, dai un occhiata al link che ho postato.

ok.. si si..ho visitato il link ;) però perdonami.. questo cosa centra con il mio problema? nel senso che avendo già un oggetto.. è del tutto inutile reistanziarlo.. cercavo una risposta in questo senso.. o meglio una soluzione, un'alternativa.. che però sarebbe molto meglio se non toccasse due volte i dati..
perche non memorizzi le immagini in cache?.

comunque la cosa migliore sarebbe prelevarle da db, se proprio non puoi farne a meno e memorizzarle sul file system in modo temporaneo.

l'applicazione web risulterà sicuramente più performate.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.