none
Jak zjistit kolik RAM aktuálně využívá SQL Server Express?

    Dotaz

  • Dobrý den,

    používáme SQL Server 2012 Express, na kterém běží informační systém. Běží na počítači s Windows 7 Home 32 bit, jedním čtyřjádrovým procesorem a vše běhá bez problému. Chtěli bychom ho vyměnit za novější, opět s jedním čtyřjádrovým procesorem a Windows 10 Pro 64 bit.

    Máme 2 databáze, jedna má 1 GB, druhá 200 MB a připojují se k nim uživatelé ze 12 počítačů v lokální síti (IS je ve sdílené složce a uživatelé ho spouští zástupcem na dané umístění v síti). Nepoužíváme virtuální stanice, vzdálenou plochu jen výjimečně, server z 90% času neplní funkci klienta.

    Dotaz zní - jediné, co by nás mohlo z limitů pro verzi Express omezovat je 1 GB RAM na instanci, je nějaký způsob jak ověřit, kolik paměti aktuálně SQL server využívá? Ve správci úloh vidím u procesu sqlservr.exe většinou hodnoty okolo 800 MB, ale i 1,2 GB, což mi přijde divné, když bychom měli být omezeni na 1 GB.

    Vím, že by pro tento případ bylo správné použít serverovou licenci windows a SQL verzi standard. Ale jak říkám, zatím to funguje bez problému, někteří uživatelé totiž používají IS jen zřídka, tak bych si rád ověřil pro náš případ, jestli už nás verze Express omezuje a do jaké míry.

    Zvažuji také možnost databáze oddělit, dát každou na jiný počítač, na každém nainstalovat IS zvlášť, což by rozdělilo počet uživatelů (obě databáze používají jen asi 2). V praxi by to pro nás nebyl skoro žádný problém, stejně se vždy při spuštění vybírá jedna nebo druhá databáze, tak by měli uživatelé místo toho dva zástupce na ploše, vše je v jedné lokální síti a data obou databází spolu nesouvisí.

    Také přesně nechápu, jaký přínos by pro nás měla serverová verze windows, když nepoužíváme virtuální stanice, ale chápu, že klientské verze nejsou dělané na odbavování většího počtu uživatelů.

    Pro malou firmu je to ale obrovská investice, tak bych chtěl vědět, jestli a jak moc ty licence potřebujeme, děkuji.

    úterý 12. července 2016 10:51

Odpovědi

Všechny reakce

  • DBCC MEMORYSTATUS

    nestaci?

    MP

    úterý 12. července 2016 12:59
    Moderátor
  • Super, děkuji. Pokud by měl někdo stejný problém, stačí spustit z příkazového řádku následující:

    sqlcmd -S .\SQL2012 -Q "DBCC MEMORYSTATUS" -o Vystup.txt

    Kde SQL2012 je název instance.

    Přiznám se, že se v tom moc nevyznám. Která hodnota by mě měla zajímat, abych ji porovnal s hraničním 1 GB, je to Working set na 4. řádku? Zde je začátek mého výstupu:

    Process/System Counts                    Value      
    ---------------------------------------- -----------
    Available Physical Memory                  740970496
    Available Virtual Memory                   224481280
    Available Paging File                     1709121536
    Working Set                                829399040
    Percent of Committed Memory in WS                 50
    Page Faults                                  5227135
    System physical memory high                        1
    System physical memory low                         0
    Process physical memory low                        0
    Process virtual memory low                         0

    (10 rows affected)
    Memory Manager                           KB         
    ---------------------------------------- -----------
    VM Reserved                                  1684340
    VM Committed                                 1597512
    AWE Allocated                                      0
    Large Pages Allocated                              0
    Emergency Memory                                1024
    Emergency Memory In Use                           16
    Target Committed                             1601536
    Current Committed                            1597512
    Pages Allocated                              1373688
    Pages Reserved                                     0
    Pages Free                                    196912
    Pages In Use                                  850824
    Page Alloc Potential                          670640
    NUMA Growth Phase                                  2
    Last OOM Factor                                    0
    Last OS Error                                      0

    (16 rows affected)
    Memory node Id = 0                       KB         
    ---------------------------------------- -----------
    VM Reserved                                  1684276
    VM Committed                                 1597512
    AWE Allocated                                      0
    Pages Allocated                              1373688
    Pages Free                                    196912
    Target Committed                             1601536
    Current Committed                            1597512
    Foreign Committed                                  0
    Away Committed                                     0
    Taken Away Committed                               0


    úterý 12. července 2016 14:07
  • Můžete prosím poradit? Už bych se potřeboval rozhodnout a nainstalovat to.

    Od včera si ukládám po pěti minutách hodnotu Working set a pohybuje se od 400 do 900 MB. Znamená to tedy, že nás verze Express zatím neomezuje? Jinak hodnota Working set prakticky odpovídá hodnotě ze Správce úloh, jen bývá zhruba o 20 MB vyšší.

    Někde jsem četl, že nejpřesnější číslo využité paměti je to Commited. Budu přemýšlet nahlas - commited je 1,6 GB, ale to je využitá paměť v RAM a stránkovacím souboru dohromady? Pokud by nebyl SQL server omezen na využití jen 1 GB RAM, využil by celých 1,6 GB v RAMce? Tahle možnost mi přijde nepravděpodobná, jinak by přece využíval neustále maximální 1 GB z RAM a zbytek by cashoval z disku..

    Víte někdo jak to je? Díky

    středa 13. července 2016 10:15
  • Tobě připadá 1GB RAM pro DB o velikosti 1GB a 12 userech málo? Nebo tam máš reálný výkonnostní problém? Jinak nechápu co řešíš.

    Jen pro představu - donedávna jsem provozoval instanci Oracle serveru s databází o velikosti cca 35GB, ke které přistupovalo 40 uživatelů na serveru, který měl fyzicky 8GB RAM. Pro Oracle bylo vyhrazených 5GB. Výkonnostně uspokojivé. Takže ve Tvém případě bych tu paměť vůbec neřešil.


    BB

    středa 13. července 2016 11:39
  • Řeším, jestli nám ještě dostačuje express verze SQL serveru, jelikož teď vyměňuju počítač, na kterém to běželo za novější. Aby to třeba za rok nebylo najednou hrozně pomalé. Není to klasický server, byl to jen vyhrazený počítač s obyč. Windows 7 Home a fungovalo to 6 let v pohodě. Ale velikost databáze postupně roste, přibyla druhá (200 MB), která v budoucnu velikosti té první asi nedosáhne, ale taky se zvýšil počet PC, které se připojují (dřív to bylo jen 6-8).

    Ten IS, co na tom běží, je Helios Orange, ti pro >5 uživatelů doporučují serverovou verzi windows a SQL server standard. To je ale investice za 150 tisíc a já se v tomhle popravdě vůbec nevyznám a nevím, jestli je to opravdu potřeba nebo ne. Podle toho, jak zatím sleduju využití paměti, mi to jako nutnost nepřijde. Pokud s tím máte zkušenosti a myslíte si to stejně, pak vám poděkuji za názor a nainstaluju tam SQL Server 2016 Express.

    středa 13. července 2016 11:57
  • Použij Express edici. Plnohodnotný SQL server začni řešit ve chvíli, kdy nebude zbytí = Express edice nebude stačit.

    Kdy to bude, Ti nikdo neřekne. S Express edicí si klidně můžete vystačit dalších 10 let nebo taky firma během roku až dvou expanduje, výrazně se zvýší počet uživatelů, naroste objem dat atd. . .

    Já bych teď neřešil edici SQL serveru, ale spíše bych pořídil server se serverovým OS. Určité věci prostě na desktop nepatří . . .


    BB

    středa 13. července 2016 12:15
  • Ok, diky. Konecne jsem na hotlinu Heliosu narazil na nekoho, kdo byl taky schopny se mi k tomu vyjadrit a rikal, ze by mela byt pamet alespon tak velka, jako nejvetsi tabulka v databazi. No nase nejvetsi tabulka je ucetni denik (110 MB), ktery pouziva jen ucetni a ta, kam koukaji skoro vsichni má asi 70 MB, takze jsem uplne v klidu.

    Jinak jsem zapomnel napsat hlavni duvod, proc jsem to zacal resit.. kdyz nam potrebovali nainportovat nejakou soucast IS, psalo to prave nedostatek pameti SQL severu a skoncilo to chybou. Rikali, ze to muzou rozdelit na mensi casti, ale ze uz to udelaji rovnou na ten novy pocitac, aby to nebylo zbytecne.. proto jsem se bal, ze to zacne vadit i pri bezne praci, ale ocividne by nemelo.

    Pokud jde o serverove windowsy - vim, ze to zni hloupe a amatersky, ale u nas neni potreba nastavovat nejaka prava pro uzivatele z povahy fungovani firmy a personalniho slozeni, v lokalni siti fungujeme bez hesel, takze mi i tech 40 tisic za serverove windowsy prijde jako skoda penez. Kazdopadne diky.


    středa 13. července 2016 12:31
  • Nedá mi to nereagovat. :o)

    To s tou velikostí RAM rovnající se alespoň velikosti největší tabulky je samozřejmě hloupost. U databází vychází potřeba systémových zdrojů z mnoha navzájem provázaných proměnných. Například celková velikost databáze, počet konkurenčních přístupů, typ práce s daty a v neposlední míře i to, jak je optimalizovaná aplikace pracující s daty. Výkonnostní ladění databáze je obor sám o sobě. Nicméně v Tvém prostředí bych jako základní indikátor použil spokojenost uživatelů s odezvou databáze.

    Co se týká toho druhého odstavce, tady bych jen dodal, že tento přístup se vám jednou nevyplatí.


    BB

    středa 13. července 2016 12:39
  • Doporucuji dat dotaz na forum forum.helios.eu

    Treti odstavec: Resit bezpecnostni problem az nastane je pozde. Nespokojeny zamestnanec, nebo zamestnanec ve vypovedi muze udelat dost skody.

    Analyza: Co se na pocitaci deje muzete take posoudit pomoci nastroju ze Sysinternals (Process Monitor, Process Explorer)

    Server: Pro tak maly pocet uzivatelu je urcena edice Foundation (15 uzivatelu). V OEM verzi je cena prizniva

    http://operacni-systemy.heureka.cz/oem-microsoft-windows-server-2012-r2-foundation-cz-plus-en-748920-421/

    M.

    středa 13. července 2016 22:50
    Moderátor