Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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?

Předmět Autor Datum
1. máš v serveru málo paměti (SQL je "hladové" a bere vše, co může) 2. pokud to není dedikovaný serv…
touchwood 18.09.2008 09:03
touchwood
Děkuji, perfektní. Nevěděl jsem o té možnosti nastavení max RAM v SQL Server Management Studio Expr…
yorg 18.09.2008 09:39
yorg
Kde se to tam nastavuje? Díky
PetrAT 22.10.2008 11:17
PetrAT
V Server Properties, Memory
Vladimir 22.10.2008 14:36
Vladimir
Díky. Petr
PetrAT 22.10.2008 15:01
PetrAT
Dá se to použíti i na SQL 2000? A nebo existuje něco takového ? Díky Petr
PetrAT 23.10.2008 15:57
PetrAT
Ano, "velké" MSSQL to umí, "malé" (tj. MSDE) je limitováno na tuším 1GB "by default" a nelze to zvýš… poslední
touchwood 23.10.2008 16:17
touchwood
Pokud tam běží SQL server a IIS, chtělo by to určitě rozšířit paměť na serveru. Pokud neomeziš paměť…
Jan Fiala 18.09.2008 09:42
Jan Fiala
Ano, s tím se nedá než souhlasit. Log přístupů mám vypnutý. Nepotřebuji ho. Nastavení recovery mode…
yorg 18.09.2008 11:31
yorg
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…
Jan Fiala 18.09.2008 13:56
Jan Fiala
Děkuji.
yorg 18.09.2008 21:26
yorg

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)

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.

Zpět do poradny Odpovědět na původní otázku Nahoru