Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Prestazioni Sqlserver
martedì 12 giugno 2007 - 10.33
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Simon3
Profilo
| Newbie
30
messaggi | Data Invio:
mar 12 giu 2007 - 10:33
Salve a tutti, sto realizzando un miniprogrammino in c# e utilizzo un database sqlserver 2005 come fonte dati. Mi manca poco a finirlo e l'ho voluto testare su della macchine. Ho riscontrato essenzialemente due problemi:
1) Il primo è che il programma su di una macchina mi genera un'eccezione probabilmente dovuta alla mancata presenza di sqlserver installato. Quindi mi chiedevo come risolvere questo problema...Magari inserire nell'installer del programma il setup di sqlserver??? Non so prorpio.
2) Il secondo è che sulla macchina dove sqlserver è installato, le prestazioni del programma sono alquanto basse. In pratica gli eventi che generano una query sul db (stored procedure o no) vengono eseguiti lentamente...Come posso migliorare le prestazioni del programma, come posso velocizzare le connessioni al db..
munissor
Profilo
| Senior Member
270
messaggi | Data Invio:
mar 12 giu 2007 - 19:22
Installare SQL server su qualsiasi macchina non è una buona idea...solitamente un database è condiviso tra più applicazioni, quindi avrai un server (con SQL server) e più client (senza SQL server) che si connettono al database remoto. Se necessiti ti un database sui singoli client usa il motore Jet (quello di access per intenderci) tramite Odbc se il database è piuttosto grosso. Se i dati sono molto pochi puoi utilizzare addirittura un DataSet.
Per il problema delle prestazioni innanzitutto devi individuare dove sta il problema: rete, client che elabora i risultati delle query in modo non efficiente, database mal ottimizzato (es:mancanza di indici) o stored procedures o query mal formulate... In base poi a dove pensi sia il problema puoi iniziare a ottimizzare..
Simon3
Profilo
| Newbie
30
messaggi | Data Invio:
mer 13 giu 2007 - 09:44
Il programma che ho creato dovrebbe girare lato client e non in rete con un server.. A tal proposito mi accorgo di aver sbagliato approccio utilizzando sqlserver 2005
. Siccome fin'ora non ho mai lavorato con database access, mi sapresti sare qualche dritta sul motore Jet (che non so cosa sia) o magari qualche url di riferimento da cui attingere materiale??
Per quanto riguarda le query mal formulate di cui parli ho dato un'occhiata...è tutto ok a parte gli indici che non so cosa siano..
Ho notato che nel momento in cui avvio l'applicazione, risutano essere lente le prime query al db. Poi successivamente le prestazioni non sono male. Come mai?? La metodologia che utilizzo è che per ogni query sul db apro e chiudo una connessione al db. E' giusto fare in questo modo??
Saluti
munissor
Profilo
| Senior Member
270
messaggi | Data Invio:
gio 14 giu 2007 - 19:01
Per aumentare le performance con la connessione usa il pooling (c'è un parametro da impostare sulla stringa di connessione..) in modo che vengano aperte un certo numero di connessioni "in attesa" che vengono usate quando ce n'è bisogno... oppure visto che non hai ne problemi di rete, ne problemi a tenere una connessione attiva al server puoi creare una connessione e utilizzare sempre quella (ammesso che si possa fare, non so come si comporta se esegui più comandi sulla stessa connessione). Per quanto riguarda il motore Jet è il vecchio motore di access (per aprire i files *.mdb per intenderci). Poi utilizzare un database tramite Odbc, praticamente non viene creato un server, viene solo caricato il motore di database nel tuo processo. Se usi caratteristiche di SQL Server (es: trigger) perà non puoi usare Jet che è molto più limitato...
Torna su
Stanze Forum
Elenco Threads
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 !