Připojení aplikace k databázi   zodpovězená otázka

Databáze, .NET

Zdravím,

chtěl bych se zeptat, které řešení je lepší. Mám aplikaci, která pracuje s databází. A je lepší se při každém požadavku připojovat k databázi a po ukončení požadavku se odpojit, nebo se připojit při spouštění aplikace a odpojit při ukončení aplikace?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Být připojen k databázi po celou dobu práce s aplikací je nesmysl. Připojte se vždy pouze na dobu nezbytně nutnou pro vykonání příkazu. Pokud by to takhle udělalo více uživatelů najednou, tak se brzy může stát to, že pár uživatelů bude připojených a řada dalších bude mít smůlu, protože server jejich požadavek na připojení z kapacitních důvodů nepříjme.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Děkuji za odpověď.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Připojení je vhodnější vytvářet pouze na dobu provádění dotazů. Na druhou stranu je hloupost otevírat spojení 100x hned za sebou. Nejlepší řešení je jej otevřít vždy v rámci nějakého bloku příkazů.

Klient má ale naštěstí automatickou funkci connection pooling. Ta zaručuje lepší práci s připojeními. Konkrétně při ukončení spojení jej vrátí do tzv. connection poolu a čeká, jestli se aplikace na jiném místě nepokusí otevřít připojení pomocí stejného připojovacího řetězce. Pokud ano, přidělí mu zinicializované připojení z poolu bez nutnosti znovu otevírat nové připojení. To nám zaručí prakticky nulovou režiji. To ocení hlavně tvůrci webových aplikací, kde velký počet požadavků provádí řadu dotazů - zde by čas potřebný na navázání spojení byl značně nepříjemný.

Snažit se tedy mít spojení sdílené pro celou aplikaci je hloupost, dostatečně dobře to za nás dělá již samotný .NET framework.

Pravidlem je ale vždy spojení uzavírat, jinak je možnost, že se do connection poolu ihned nevrátí a bude zbytečně blokovat jeden slot připojení.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ohledně connection poolingu doporučuji článěk přímo od zdroje, po přečtění pochopíte lépe jak se k připojením chovat:

http://msdn.microsoft.com/en-us/library/...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback