Prestazioni: lettura da DB o da disco...

lunedì 21 marzo 2011 - 14.05
Tag Elenco Tags  C#  |  Visual Studio 2010  |  Visual Studio 2008

andrestu Profilo | Expert

Ciao a tutti,
pongo questa domanda con la consapevolezza di non poter avere una risposta ben definita ma almeno potrei farmi una vaga idea della miglior soluzione da adottare.

Il contesto è il seguente:
- una ListView in Aspnet
- ad ogni dataitem corrisponde una cartella con all'interno diversi file immagini (dai 5 ai 10 circa)

a questo punto quando la listview viene creata nell'evento dataitembound cioè quello che viene scatenato alla creazione di ogni dataitem devo praticametne andare a creare le immagini che corrispondono a quello specifico dataitem e quindi devo sapere il nome dei file immagini per crearmi a runtime tutte le immagini relative al dataitem.
Facendo un esempio se ho un dataitem con id 435 questo vuol dire che avrò una cartella corrispondente chiamata 435 con all'interno 5/10 immagini.
A questo punto ci sono due modi per recuperare il nome delle immagini:
- il primo è andare a leggere direttamente nel disco nella cartella di riferimento e in base alla lista dei file contenuti mi creo le immagini, quindi per N dataitem avrò N letture su disco
- il secondo è andare a leggere x ogni dataitem dal DB i nomi dei file delle immagini, quindi stesso discorso x N dataitem dovrò farmi N letture al DB

Quale delle 2? ci sarebbe anche una terza ma andrei a complicarmi un pò la vita...


Andrea Restucci - Web Programmer
www.andrearestucci.name
Download and try my FREE custom controls !!!

alx_81 Profilo | Guru

>Ciao a tutti,
Ciao

>A questo punto ci sono due modi per recuperare il nome delle immagini:
>- il primo è andare a leggere direttamente nel disco nella cartella
>di riferimento e in base alla lista dei file contenuti mi creo
>le immagini, quindi per N dataitem avrò N letture su disco
>- il secondo è andare a leggere x ogni dataitem dal DB i nomi
>dei file delle immagini, quindi stesso discorso x N dataitem
>dovrò farmi N letture al DB
il primo punto legge solo da disco, il secondo ANCHE da db, a meno che i file non siano salvati su database (o con il filestream option).

>Quale delle 2? ci sarebbe anche una terza ma andrei a complicarmi un pò la vita...
direi che detta così, la prima fa letture SOLO da disco.. quindi sembra esserci meno overhead. Ma dipende da come salvi lo stream, se su db o meno.

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

andrestu Profilo | Expert

no scusa non lho specificato, non faccio nessuno stream, nel DB salvo solo il nome del file quindi la quantità di dati trasportati è bassa...


Andrea Restucci - Web Programmer
www.andrearestucci.name
Download and try my FREE custom controls !!!

alx_81 Profilo | Guru

>no scusa non lho specificato, non faccio nessuno stream, nel
>DB salvo solo il nome del file quindi la quantità di dati trasportati
>è bassa...
ok.. nel primo caso leggi solo da disco, nel secondo non solo leggi da disco, ma devi leggere n volte anche da db.. quindi la prima è più leggera come metodologia.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5