Nie je dost virtuálnej pamäte keď máte veľký počet databáz na serveri SQL

Preklady článku Preklady článku
ID článku: 316749 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

PRIZNAKY

Nesmie byť dosť dostupný virtuálny priestor adries v proces servera Microsoft SQL Server, ak všetky tieto podmienky sú splnené, keď ste Spustenie servera SQL Server s predvolené hodnoty konfigurácie:
  • Server má 2 GB alebo viac pamäte RAM.
  • Existuje veľký počet databáz o systéme (pre napríklad viac ako 500).
  • Aktualizujú sa väčšina databáz (napríklad databáz nemajú štatút „len na čítanie").
  • Existuje dostatok súbežne aktívneho používateľa pripojenia k použiť najviac 255 pracovné podprocesy SQL Server.
Server SQL Server môže generovať nasledujúce chybové hlásenia po celé 2-GB virtuálny adresný priestor používa až (alebo po celé 3-GB virtuálnej priestor adries je použitý na SQL Server Enterprise Edition s / 3 GB Prepnite do súboru Boot.ini).

Hlásenie 1

Chyba: 17802, závažnosť: 18, štát: 3
Nepodarilo sa vytvoriť servera udalosť vlákno.

Message 2

SQL Server mohol spawn process_loginread vlákno.

Správa 3

Upozornenie: Vymazanie vyrovnávacej pamäti procedúry na voľný súvislej pamäte.

Medzipamäť distribúcie: Ukradnuté = 3454 voľného = 2540 postupy = 138
Inram = 0 špinavé = 1108 priebežne = 35
I / O = 0, naklonený = 0, iné = 214821
Medzipamäť počíta: Spáchané = 222096 Target = 222096 hashovaný adresár = 215964
InternalReservation = 547 ExternalReservation = 0 Min voľného = 512
Postup Cache: TotalProcs = 8 TotalPages = 138 InUsePages = 138
Dynamické Správca pamäte: ukradnuté = 3556
OS = 497 všeobecné = 1706
Dotaz plán = 755 Optimizer = 0
Utility = 9 pripojenie = 1583
Globálne pamäte objektov: Zdroj = 1119 zámky = 163 XDES = 1 SQLCache = 90 replikácie = 5 LockBytes = 2 ServerGlobal = 20
Správca pamäte dotazu: granty = 0 čaká = 0 maximálne = 164370 k dispozícii = 164370

PRICINA

Pre každú aktualizovanú databázu SQL Server alokuje aspoň jeden blok 64 KB na použitie formátovania denník záznamov pred sú napísané na disku. Toto rozdelenie sa vyskytuje, keď prvý záznam denníka je generovaný pre databázy, také ako počas INSERT, UPDATE, alebo odstrániť vyhlásenie. V závislosti na činnosť a veľkosť generované denník záznamov, následné úpravy môže vyvolať rozdelenie dodatočných 64 KB pridelenia. SQL Server 7.0 pridelí č viac ako tri bloky 54 KB. V SQL Server 2000, horné počet vyhradení pre každú databázu je funkciou počet procesorov, ktoré SQL Server je nakonfigurovaný na použitie.

RIEŠENIE

Použitie -g pri spustení parametra opustiť dodatočné, bezvýhradné virtuálnej pamäte je k dispozícii pre tieto databázy pridelenia. The -g parameter je zdokumentovaný v Readme.txt SQL Server 7.0 Service pack, a v SQL Server 2000 Books Online. "Ďalšie informácie" časti v tomto článku zahŕňa nastavenia, ktoré spoločnosť Microsoft odporúča používate určiť vhodné hodnotu pre toto nastavenie.

DALSIE INFORMACIE

Na počítači s 2 GB alebo viac pamäte RAM, SQL Server rezervy všetky ale 256 MB (SQL Server 7.0) alebo 384 MB (SQL Server 2000) virtuálnych adries priestor počas procesu spúšťania na použitie fond medzipamäte. Okrem toho na ukladanie údajov a postupom cache, server SQL Server používa bazén medzipamäte na Služba väčšina iné pamäte žiadosti od SQL Server procesov, ktoré sú menej ako 8 KB. Zostávajúca bezvýhradné pamäť je určené na použitie s inými vyhradenia, ktoré nemožno servise od fond medzipamäte. Týchto prídelov zahŕňať, ale nie sú obmedzené na:
  • Komíny a pridružených vlákno prostredie blok pre akúkoľvek vlákna, ktoré vytvára SQL Server. Po SQL Server vytvorí všetky 255 pracovníka podprocesy, to je približne 140 MB.
  • Vyhradenia, ktoré sú vytvorené iné DLL alebo procesy, ktoré sú spustené v priestore adries servera SQL Server, (ktoré sa mení od systému systém), ako napríklad:
    • Poskytovateľov OLE DB z akéhokoľvek prepojený serverov.
    • Objekty COM, ktoré sú načítané použitím sp_OA systém uložené postupy alebo rozšíriť uložené postupy.
  • Žiadne obrázky (.exe alebo .dll), ktoré sa načítajú v adrese priestor, ktoré bežne používajú 20 až 25 MB, ale pravdepodobne viac, ak používate prepojený servery, sp_OA, alebo predĺžiť uložené procedúry.
  • Proces haldy a iné haldy, ktorý server SQL Server môže vytvoriť. Počas procesu spúšťania toto je typicky 10 MB, ale môže byť viac používate prepojený servery, sp_OA, alebo predĺžiť uložené procedúry.
  • Prostriedky z SQL Server procesy, ktoré sú väčšie ako 8 KB, ako sú tie, ktoré sú potrebné pre veľké dotaz plánov, odosielať a prijímať medzipamäte, ak The Veľkosť sieťových paketov možnosti konfigurácie je takmer 8 KB, a tak ďalej. Vidieť to čísla, pozrite sa na OS vyhradené hodnota, ktorá bola hlásená v DBCC MEMORYSTATUS a ktorý vykazuje ako počet strán, 8 KB. Sú typické tieto hodnoty pre tento 5 MB.
  • Pole na sledovanie informácií o stave pre každú tlmivého roztoku, ktoré je fond medzipamäte. To je obvykle asi 20 MB, pokiaľ SQL Server nie je spustený s Address Windowing Extensions (AWE) zapnutá, v takom prípade je možné byť podstatne vyšší.
Na systémoch, ktoré majú veľký počet databáz, 64 KB prídelov, ktoré sú potrebné pre formátovanie denníka možno obsadiť všetky zostávajúce virtuálnej pamäte. V tomto bode môžu zlyhať následné pridelenia, výsledkom je jedna alebo viac chýb, ktoré sú uvedené v časti „príznaky" časti v tomto článku.

Pomocou -g pri spustení parametra, môže poveriť SQL Server opustiť dodatočné virtuálnej pamäte tak, že kombináciou týchto súvisiaci prihlásiť pridelenia a iných bežných pridelenia sa nespustí z priestor virtuálnych adries.

V nasledujúcej tabuľke sú niektoré navrhované Začiatky -g hodnoty v závislosti od počtu databáz a server verzia:
Zbaliť túto tabuľkuRozbaliť túto tabuľku
DatabázServer SQL Server 7.0SQL Server 2000
250-g134NEDOSTUPNÝ
500-g185NEDOSTUPNÝ
750-g237NEDOSTUPNÝ
1000-g288-g288
1250-g340-g340
1500-g392-g392
Táto tabuľka bola vypočítaná pomocou typických hodnôt uvedené a tiež je založený na predpoklade, že žiadny prepojený server činnosti, sp_OA alebo rozšírené uložené procedúry sa používajú. Tiež je založený na predpoklad, že nepoužívate ÚŽAS, a tento SQL Profiler nie je v použitie. Akékoľvek tieto podmienky môžu vyžadovať vám zvýšiť hodnotu -g.

Spoločnosť Microsoft odporúča, aby ste si vážne úvahy pred spustením servera s viacerými databázami ako táto, pretože režijné, ktorý sa požaduje pre má tento počet databáz na systém je užívať veľa virtuálnej pamäte od fond medzipamäte, ktoré môžu viesť k slabý výkon pre systém ako celok.

Navyše, vytváranie dávok databáz má najvýznamnejší vplyv na virtuálnej pamäte. Existujú aj vyhradenia pamäte databázy, ktoré môže spôsobiť stave rezervných bazén-pamäte. Napríklad môže zobraziť nasledovné chybové hlásenie:
Chyba: 701, závažnosť: 17, štát: 123.
Existuje nedostatočná systémovej pamäte chcete tento dotaz spustiť.
Tento druh nedostatok pamäte podmienka môže byť bežnejšie v SQL Server 2005, pretože SQL Server 2005 skladby viac databázy metaúdaje ako staršie verzie servera SQL Server.

Keď budete sledovať používanie indexu pomocou SYS.dm_db_index_usage_stats uložená procedúra, operácia môže vyžadovať značné množstvo pamäte. Operácia vyžaduje značné množstvo pamäte, ak každej databáze má veľa indexov.

Vlastnosti

ID článku: 316749 - Posledná kontrola: 8. novembra 2011 - Revízia: 1.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Standard Edition
Kľúčové slová: 
kberrmsg kbtshoot kbnofix kbprb kbmt KB316749 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:316749

Odošlite odozvu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com