Domanda

  • Che cosa è?
  • Come faccio a implementare il pool di connessioni con MS SQL?
  • Quali sono le prestazioni ramificazioni quando
    • L'esecuzione di query, uno dopo l'altro (es.utilizzando un ciclo con 30K+ iterazioni di chiamare una stored procedure)?
    • L'esecuzione di un paio di query che richiedono un lungo periodo di tempo (10+ min)?
  • Ci sono buone pratiche?
È stato utile?

Soluzione

Il pool di connessioni è un meccanismo di ri-utilizzare connessioni, come la creazione di una nuova connessione è lenta.

Se si utilizza un MSSQL stringa di connessione e di Sistema.Dati.SqlClient allora siete già in uso in .Al netto di questa roba è sotto il cofano la maggior parte del tempo.

Un ciclo di 30c iterazioni potrebbe essere migliore come un cursore sul lato server (look up T-SQL, istruzioni di cursore), a seconda di quello che stai facendo con ogni passo al di fuori della stored procedure.

Lungo le query sono belle, ma attenzione a chiamarli da pagine web Asp.Net non è proprio ottimizzato per le lunghe attese e alcune connessioni verrà tagliato fuori.

Altri suggerimenti

Un po ' più di informazioni sul pool di connessioni cosa...si utilizza già con SqlClient, ma solo se la stringa di connessione è identico per ogni nuova connessione si apre.La mia comprensione è che il framework pool di connessioni automaticamente quando si può, ma se la stringa di connessione varia leggermente da una connessione per il prossimo, quindi la nuova connessione non provengono da piscina, che viene creato di nuovo (quindi è più costoso).

È possibile utilizzare Performance Monitor app con XP/Vista per guardare le connessioni SQL e vedrai abbastanza velocemente se non la messa in comune è di essere utilizzato.Guardate sotto ".NET CLR Dati" categoria" in Performance Monitor.

Io secondo Keith;se si chiama una stored procedure 30.000 volte, si ha molto più grandi problemi che il pool di connessioni.

La tua domanda è stata anche parzialmente risposto questo thread.Una ricerca avrebbe rivelato questo..La definizione di un Pool di connessioni, di cui una Google avrebbe risposto con il primo colpo di essere questo..

Che lascia solo le migliori pratiche, che credo sarebbe stata una buona domanda :)

+1 per Keith Risposta.Ha colpito il chiodo proprio sulla testa.

Solo un cortese sollecito da FAQ:

Hai cercato su internet prima di la domanda, e tu vieni a noi armati di ricerca e di informazione in merito alla tua domanda ...giusto?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top