Internet klienti se v₧dy na zaΦßtku provßd∞nφ ka₧dΘho po₧adavku p°ihlßsili k SQL serveru, provedli po₧adovanΘ akce, odhlßsili se a odeslali sestaven² dokument. Testovßnφm bylo zjiÜt∞no, ₧e nejvφce Φasu strßvφ Internet klient p°ihlaÜovßnφm a odhlaÜovßnφm k/od SQL serveru. Permanentnφ spojenφ s SQL serverem odstra≥ujφ tato zdr₧enφ p°i p°ihlaÜovßnφ a odhlaÜovßnφ. Internet klient udr₧uje permanent connection pool (bank, resp. fond otev°en²ch klientsk²ch spojenφ s SQL servery). Z tohoto poolu si p°i zaΦßtku provßd∞nφ jistΘho po₧adavku vyp∙jΦφ momentßln∞ nevyu₧φvanΘ klientskΘ spojenφ na ten SQL server, se kter²m bude p°i provßd∞nφ tohoto po₧adavku pracovat. Vyp∙jΦenΘ klientskΘ spojenφ je u₧ p°ipojeno k SQL serveru, proto odpadß p°ihlaÜovßnφ na SQL server. Internet klient provede po₧adovanΘ akce, sestavφ dokument atd. a v okam₧iku, kdy by se normßln∞ odhlaÜoval od SQL serveru, vrßtφ vyp∙jΦenΘ klientskΘ spojenφ (kterΘ z∙stßvß stßle otev°enΘ) do poolu, odkud si jej m∙₧e vyp∙jΦit jin² po₧adavek.
Zrychlenφ prßce Internet klienta je minimßln∞ 0,8 s, se zvyÜujφcφm se zatφ₧enφm webserveru je zrychlenφ jeÜt∞ v²razn∞jÜφ (p°i v∞tÜφ zßt∞₧i strßvil starÜφ Internet klient vφce Φasu p°ihlßÜenφm a odhlßÜenφm k/od SQL serveru).
Permanentnφ spojenφ lze vyu₧φvat pouze s t∞mi Internet klienty, kte°φ b∞₧φ "po°ßd" (kte°φ nejsou spouÜt∞nφ a ukonΦovßni p°i provßd∞nφ ka₧dΘho po₧adavku), tj. s ISAPI a FastCGI klientem.
Lze nastavit poΦet permanentnφch spojenφ s SQL serverem, toto nastavenφ se provßdφ na Windows pomocφ ╪φdicφ kozole 602SQL, na Linuxu editacφ ·daje PermanentSQLConnections
v sekci Performance
v souboru 602sql
. Na Windows lze tento ·daj nastavovat takΘ editacφ tohoto ·daje v souboru wbcgi.ini
.
Internet klient se chovß takto: P°i prvnφm pokusu o p°ipojenφ k jistΘmu SQL serveru (nap°. k databßzi "db_a") se vytvo°φ po₧adovan² poΦet spojenφ na tento SQL server (tolik, kolik stanovuje hodnota PermanentSQLConnections
), tφm dojde k obsazenφ stejnΘho poΦtu klientsk²ch licencφ danΘho SQL serveru. P°i vy°izovßnφ po₧adavk∙ se klientskß spojenφ vyp∙jΦujφ z connection pool a zase se tam vracejφ. Jakmile se p°i vy°izovßnφ jistΘho po₧adavku zjistφ, ₧e vÜechna spojenφ jsou vyp∙jΦenß, bude tento po₧adavek vy°φzen "postaru", tj. Internet klient se p°ihlßsφ na SQL server, provede prßci a odhlßsφ se od SQL serveru. V p°φpad∞, ₧e se tento Internet klient poprvΘ p°ipojφ na jin² SQL server, vytvo°φ se po₧adovan² poΦet permanentnφch spojenφ takΘ s tφmto SQL serverem.
DoporuΦenΘ nastavenφ poΦtu permanentnφch spojenφ s SQL serverem je ovlivn∞no poΦtem licencφ SQL serveru (nem∙₧e b²t v∞tÜφ ne₧ je poΦet licencφ). Pro smysluplnΘ vyu₧itφ tΘto technologie je dobrΘ udr₧ovat nejmΘn∞ 3-5 permanentnφch spojenφ. P°i p°edpoklßdanΘ vyÜÜφ zßt∞₧i webserveru (a za p°edpokladu pat°iΦn∞ v²konnΘho poΦφtaΦe) lze tento poΦet zvyÜovat a₧ na cca 30. Tato hornφ mez je dßna tφm, ₧e ka₧d² prßv∞ vy°izovan² po₧adavek zabere p°ibli₧n∞ 3 MB operaΦnφ pam∞ti. Navrhovan² poΦet 30 permanentnφch spojenφ by tedy p°i vyu₧itφ vÜech spojenφ pro provßd∞nφ po₧adavk∙ zabral p°ibli₧n∞ 90 MB operaΦnφ pam∞ti, co₧ je p°ijatelnΘ pro poΦφtaΦ s 256 MB pam∞ti, na kterΘ b∞₧φ pouze webserver a Internet klienti.
Lze nastavit klient∙m vyu₧φvajφcφm permanentnφ spojenφ na SQL server dobu "₧ivotnosti" permanentnφho spojenφ. Nastavenφ je v INI souboru wbcgi.ini/602sql
v sekci Performance
, klφΦ PermanentConnectionRefreshTime
. Hodnota klφΦe je poΦet hodin, po kter²ch se mß permanentnφ spojenφ ukonΦit a znovu vytvo°it.
V p°φpad∞, ₧e jsou soub∞₧n∞ vyu₧φvßni ISAPI klient i FastCGI klient (oba vytvß°ejφ permanentnφ spojenφ), ka₧d² klient si otev°e tolik spojenφ, kolik udßvß parametr PermanentSQLConnections
- tj. celkem bude na SQL servery otev°eno 2*PermanentSQLConnections spojenφ. Proto se siln∞ doporuΦuje pou₧φvat pouze jednoho Internet klienta, kter² vytvß°φ permanentnφ spojenφ. CGI klienta lze pou₧φvat libovoln∞ bez ohledu na to, zda je Φi nenφ pou₧φvßn ISAPI Φi FastCGI klient, proto₧e CGI klient nadßle pracuje postaru a ₧ßdnß permanentnφ spojenφ nevytvß°φ.
Kv∙li sprßvnΘmu odpojenφ permanentnφch spojenφ je t°eba nejd°φve ukonΦit Internet klienty a teprve potom ukonΦit SQL servery, na kterΘ m∞li Internet klienti otev°eny permanentnφ spojenφ. V p°φpad∞ opaΦnΘho postupu dojde po ukonΦenφ SQL serveru k zablokovßnφ Internet klient∙. Tento problΘm by m∞l b²t v nejbli₧Üφ dob∞ vy°eÜen tak, ₧e po ukonΦenφ SQL serveru ukonΦφ Internet klienti automaticky vÜechna permanentnφ spojenφ s tφmto SQL serverem.
Pro sprßvnΘ a ·plnΘ vyu₧itφ t∞chto rys∙ ISAPI Internet klienta je nutnß spoluprßce s webserverem Microsoft IIS.