Hej, Om det är asp.net och databasen är en sql server så behöver du inte oroa dig så mycet för det. Jo är asp.net och sql server det rör sig om. Visste att den körde connection poolen men tänkte att det borde vara ännu skonsammare att ha samma anslutning istället för att öppna massa gånger varje sidvisning. Det som kostar är när databaskopplingen öppnas mot databasen, att skapa connection objektet och ropa på metoden open är förhållandevis billigt. Eftersom jag använder samma klass till all datahantering så har de även samma connectionstring men när jag kollar så finns det typ 50 st connectionpools vilket jag tycker är lite konstigt. Du kan själv ställa hur många kopplingar som du vill hålla öppna i din connectionpool, kanske är det inställd någonstans att du skall ha typ 50. Eller är det så att du har få när du applikation inte är igång och många när du har kört dina applikation lite, så fall glömmer du säkert att stänga någonstans. Vanligast är att man använder sig av DataReader och inte sätter CommandBehivor till CloseConnection. Ett förtydligande: Tack för alla svar. då behöver jag inte göra någon speciell åtgärd. Ska gå igenom koden och kolla så att saker stängs som de ska.Öpnna / stänga databas
jag har ett litet problem. Just nu så har jag en sida och det är en del includes och annat på den vilket gör att det är många olika platser som hämtar saker från databasen under varje request. jag har just nu en klass som sköter datahanteringen, men den öppnar jag och stänger på massa olika ställen och tror att detta kan ge lite prestandaproblem. Finns det någon lösning på det här problemet?Sv: Öpnna / stänga databas
Connection Poolingen kickar in och ser till att den overheaden är minimal.Sv:Öpnna / stänga databas
Sv:Öpnna / stänga databas
Sv: Öpnna / stänga databas
Sv:Öpnna / stänga databas
Ur prestanda synpunkt så är det bästa att hålla din databaskoppling öppen så kort stund som möjligt. Alltså det är bättre att öppna och stänga din databas vid varje anrop, än att öppna den "i början" av sidan och sedan stänga den "i slutet av sidan". Det har helt och hållet att göra med att du inte har en anning om när visa delar av din kod kommer att exekveras av processorn. Vilket gör att om du inte har den öppen en så kort stund som möjligt så är det större risk att du överskriver antalet kopplingar som ligger i din connectionpool och varje koppling som skall skapas utöver de som redan finns tillgängliga kostar i prestanda.
- MSv: Öpnna / stänga databas
När man "stänger" och "öppnar", är det alltså *inte* en fysisk conenction som stängs och öppnas. Det vill man absolut inte eftersom det blir väldigt segt att göra den anslutningen vid varje anrop.
Det som händer är att connection-objektet lämnas tillbaks till poolen och blir då tillgängligt för andra trådar. Det går mycket snabbt att få tag i ett objekt från poolen. I princip görs följande:
ConnObj = ConectionPool_HashTable(conectionString)
och det tar inte många mikrosekunder.. :DSv:Öpnna / stänga databas