

Neustále rostoucí sqlservr.exe
Dobrý den,
sqlservr.exe SQL Studio Express SP2 na server 2k3 má velikost přes 1GB a stále během dne roste. Končí někde kolem 1,5GB.
Zatím to řeším tak, že v noci přes sheduler zastavím a znovu spustím službu. Jinak se server docela zpomaluje. To zpomalení se projeví např. při přihlášení na konzoli po aktivaci screensaveru, kdy toto přihlášení trvá někdy i něco přes minutu.
Stejně tak se zpomalují odezvy v intranetové (asp běžící na IIS na stejném serveru) i desktopové aplikaci, které SQL používají. Po restartu služby jsou odezvy rychlejší, ale po cca hodině se opět velikost zabrané paměti blíží k původní hodnotě a odezvy se postupně zpomalují.
Je nějaké řešení jak tomu zamezit nebo to je vlastnost a nedá se s tím dělat nic jiného než se s tím smířit?
1. máš v serveru málo paměti (SQL je "hladové" a bere vše, co může)
2. pokud to není dedikovaný server, zvaž použití dedikovaného SQL serveru
3. nastav si maximální využití RAM v SSMSE (pokud nemáš, zde ke stažení: http://www.microsoft.com/downloadS/details.aspx?fam ilyid=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796&displayl ang=en ), nastav hodnotu maxima někam k polovině dostupné RAM, pokud ti tam běží i další služby. Nastavení maximální hodnoty alokované RAM by mělo jít i sql skriptem (přiznám se, že 2005 a 2008 "lite" verze moc neznám, u 2000 to šlo)
Děkuji, perfektní.
Nevěděl jsem o té možnosti nastavení max RAM v SQL Server Management Studio Express.
Kde se to tam nastavuje? Díky
V Server Properties, Memory
Díky. Petr
Dá se to použíti i na SQL 2000? A nebo existuje něco takového ? Díky Petr
Ano, "velké" MSSQL to umí, "malé" (tj. MSDE) je limitováno na tuším 1GB "by default" a nelze to zvýšit.
Pokud tam běží SQL server a IIS, chtělo by to určitě rozšířit paměť na serveru.
Pokud neomeziš paměť pro SQL server, zabere si co mu system dovolí a to včetně swapu, takže se to pak stejně zpomalí.
Pokud mu paměť omezíš, může to vést ke zpomalení aplikace, která je na SQL serveru závislá - v tm případě záleží na spoustě věcí - velikost databáze, počet uživatelů, nastavení recovery modelu - doporučil bych simple místo full, jinak bude LOG rust do hooodne velkych rozmeru atd.
Ano, s tím se nedá než souhlasit.
Log přístupů mám vypnutý. Nepotřebuji ho. Nastavení recovery modelu jsem v Properties bohužel nenašel. Pouze v Database settings je Recovery 0 minut, ale to asi není to stejné.
Problém je v tom, že peníze jsou vždy až na prvním místě. Je to server pro intranet (cca 50 lidí) nepodporovaný systémovým integrátorem. Takové samodomo pro vnitřní potřebu (intranet, docházka, souborový server a sw audit). Byl jsem rád, že jsem získal licenci na server 2k3 a volný počítač na kterém to jede. Ten má bohužel pouze 2 sloty na RAM a v nich celkem 2 GB. Na víc nejsou peníze.
Omezením SQL na 800MB jsem patrně našel pro danou situaci optimum. Odezvy z IIS jsou viditelně lepší a SQL funguje jak má.
V takovém případě bych se nebál jít s tou pamětí ještě kousek níž. Pokud tam neběží žádné náročné DB aplikace, tak to postačí.
Recovery model se nastavuje na úrovni databáze, ne serveru. V základu je full model, který prostě loguje vechny transakce a nechává je v logu i po uzavreni, takze LOG soubor je po chvili nekolikanasobne vetsi nez databaze, musi se poustet shrink atd. Simple model loguje pouze neuzavrene transakce - po potvrzeni/rollbacku se transakce z logu odstrani.
Zkus se podivat na vlastnosti databáze na záložce Option. SQL 2005 to má hned nahoře.
Děkuji.