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
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
[MySQL5 & Connector.Net 5.1.4] Spool Di Connessioni
giovedì 03 aprile 2008 - 11.23
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
FedericoC
Profilo
| Junior Member
134
messaggi | Data Invio:
gio 3 apr 2008 - 11:23
Ciao,
Avrei bisongo di alcuni chiarimenti con gli spool di connessione, per prima cosa volevo sapere e il comportamento di questi è uguali a quanto succede con MSSQL, perchè ho letto degli spool sul libro programame ado.net 2.0 e prende come riferimento mssql 2005...
come seocnda info volevo sapere che cpsa devo fare per sfruttare lo spool, perchè io ho diverse form che ognina di esse ha a sua volta molte funzioni che richiamano la connect in questo modo:
using (MySqlConnection conn = new MySqlConnection(MainForm.Database()))
Mi è venuto un dubbio, non è che facendo cosi vado a creare ogni volta una nuova connessione?
Se si, mi conviene dichiarare una MySqlConnection nel mainform e dopo utilizzare sempre quella con i metodi open e close?
PS: la stringa di connessione non varia mai...
Grazie
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
gio 3 apr 2008 - 12:43
>Avrei bisongo di alcuni chiarimenti con gli spool di connessione,
>per prima cosa volevo sapere e il comportamento di questi è uguali
>a quanto succede con MSSQL, perchè ho letto degli spool sul libro
>programame ado.net 2.0 e prende come riferimento mssql 2005...
Con "spool" intendi il connection pool?
>come seocnda info volevo sapere che cpsa devo fare per sfruttare
>lo spool, perchè io ho diverse form che ognina di esse ha a sua
>volta molte funzioni che richiamano la connect in questo modo:
>
>
>using (MySqlConnection conn = new MySqlConnection(MainForm.Database()))
>
>Mi è venuto un dubbio, non è che facendo cosi vado a creare ogni
>volta una nuova connessione?
Eh si.
>Se si, mi conviene dichiarare una MySqlConnection nel mainform
>e dopo utilizzare sempre quella con i metodi open e close?
No. Dichiara una variabile connection localmente ad ogni procedura che necessita di accedere ai dati, apri la connessione, esegui la query, chiudi la connessione.
In questo modo minimizzi le risorse allocate sul server, aumentando la scalabilità del sistema.
>Grazie
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
FedericoC
Profilo
| Junior Member
134
messaggi | Data Invio:
gio 3 apr 2008 - 13:22
Uhh
il fatto è questo:
Ci sono molte form in pratica ad ogni form è associata un'istruzione sql, quindi una connection locale ha poco senso...
Queste form possono veire aperte molto frequentemente, ad esempio:
Inserimento Cliente
Inserimento fattura
Visualizza Fattura
Stampa Fattura
ecc...
Sono tutti form separati, quindi dovrei fare 5 query e per queste 5 query se utilizzo la variabile locale vado ad aprire sempre nuove pool di connessioni...
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
gio 3 apr 2008 - 14:45
>Ci sono molte form in pratica ad ogni form è associata un'istruzione
>sql, quindi una connection locale ha poco senso...
Il template:
1) Definisco variabile oggetto Connessione
2) Apro connessione
3) Eseguo la query
4) Chiudo e distruggo la connessione (eventualmente reinserendola nel connection pool)
Ha SEMPRE senso in applicazioni che richiedono una certa scalabilità.
>Queste form possono veire aperte molto frequentemente, ad esempio:
>
>Inserimento Cliente
>Inserimento fattura
>Visualizza Fattura
>Stampa Fattura
>ecc...
A maggior ragione...
Se si tenta di riaprire una connessione con un contesto di sicurezza identico ad una precedentemente inserita nel connection pool, l'operazione sarà istantanea con un overhead inesistente.
>Sono tutti form separati, quindi dovrei fare 5 query e per queste
>5 query se utilizzo la variabile locale vado ad aprire sempre
>nuove pool di connessioni...
Il pool è 1, costituito da un numero massimo di connessioni che vi appartengono stabilito in fase di definizione.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
FedericoC
Profilo
| Junior Member
134
messaggi | Data Invio:
gio 3 apr 2008 - 15:48
Mi sono spiegato male
using (MySqlConnection conn = new MySqlConnection(MainForm.Database()))
{
conn.Open();
conn.Close();
}
using (MySqlConnection conn = new MySqlConnection(MainForm.Database()))
{
conn.Open();
conn.Close();
}
Queste due operazioni creano una nuova connessione, però la seconda va a sfruttare il pool aperto dalla prima conn, sia che essa si trovi in un'altro form già chiuso o in un'altra classe?
Giusto?
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
gio 3 apr 2008 - 17:23
>Queste due operazioni creano una nuova connessione, però la seconda
>va a sfruttare il pool aperto dalla prima conn, sia che essa
>si trovi in un'altro form già chiuso o in un'altra classe?
>
>Giusto?
Se la connection string è la stessa, allora si.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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 !