Pravděpodobně není dostatek virtuální paměti při mít velký počet databází SQL Server

Překlady článku Překlady článku
ID článku: 316749 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Příznaky

Pravděpodobně není dostatek místa k dispozici virtuální adresu v procesu Microsoft SQL Server Pokud jsou všechny následující podmínky pravdivé když pracujete se systémem SQL Server s výchozí hodnoty konfigurace:
  • Server má 2 GB nebo více paměti.
  • Existuje velký počet databází systému (například více než 500).
  • Většinu databází jsou aktualizovány (například databáze nemáte stav "pouze pro čtení").
  • Jsou dostatek současně aktivních uživatelských připojení používat většinu 255 pracovních podprocesů SQL Server.
Po celé 2 GB virtuálního adresového prostoru je použit, SQL Server může generovat následující chybové zprávy (nebo po celé 3 GB virtuálního adresového prostoru na SQL Server Enterprise Edition s používá / 3 GB v souboru Boot.ini přepínač).

Zpráva 1

Chyba: 17802 závažnosti: 18, stav: 3
Vytvořit podproces událostí serveru.

Zpráva 2

SQL Server by není spustí způsobem zatížit process_loginread podproces).

Zpráva 3

Upozornění: Vymazání mezipaměti postup do volných souvislé paměti.

Krádeži vyrovnávací paměti distribuce: = 3454 volné = 2540 procedury = 138
Inram = 0 = dirty 1108 uchovány = 35
JSEM / O = 0 Latched = 0, ostatní = 214821
Počty vyrovnávací paměti: Potvrzené = 222096 Target = 222096 zatříděna = 215964
InternalReservation = 547 ExternalReservation = 0 min volné = 512
Postup mezipaměť: TotalProcs = 8 TotalPages = 138 InUsePages = 138
Dynamické správce paměti: krádeži = 3556
OS = 497 Obecné = 1706
Plán dotazu = 755 Optimalizátor = 0
Nástroje = 9 připojení = 1583
Globální objekty paměti: Resource = 1119 uzamčení = 163 XDES = 1 SQLCache = 90 replikace = 5 LockBytes = 2 ServerGlobal = 20
Správce paměti dotazu: udělí = 0 čekání = 0 největší = 164370 dostupné = 164370

Příčina

Pro každou aktualizované databázi SQL Server přidělí alespoň jeden blok 64 KB pro použití v formátování záznamy protokolu před jejich jsou zapisovány na disk. Tato přidělení dochází při první záznam protokolu je generován pro databázi, jako například během příkaz INSERT, UPDATE nebo DELETE. V závislosti na činnosti a velikost záznamů protokolu generované může vyvolat následné změny přidělení další přidělení 64 KB. SQL Server 7.0 bude přidělit více než tři bloky 54 KB. SQL Server 2000, horní počet přidělení pro každou databázi je funkce počet procesorů, že SQL Server je nakonfigurován pro použití.

Jak potíže obejít

Použití -g spouštěcí parametr ponechejte další, nerezervované virtuální paměti dostupné pro tyto databáze přidělení. -G parametr je popsána v Readme.txt aktualizace SQL Server 7.0 service pack a v SQL Server 2000 Books Online. „ Další informace"obsahuje nastavení, které společnost Microsoft doporučuje použít k určení odpovídající hodnotu pro tento, nastavení v tomto článku.

Další informace

V počítači s 2 GB nebo více paměti RAM, SQL Server rezerv všechny ale 256 MB (SQL Server 7.0) nebo 384 MB (SQL Server 2000) prostoru virtuálních adres během procesu spuštění používat fondu vyrovnávací paměti. Navíc k ukládání dat a postup mezipaměti SQL Server používá fondu vyrovnávací paměti služby většině dalších požadavků paměti z SQL Server zpracuje, které jsou menší než 8 KB. Zbývající nerezervované paměti je určena pro ostatní přidělení nelze servisu z fondu vyrovnávací paměti. Zahrnout tyto přidělení, ale jsou omezeny na:
  • Blok prostředí přidružené podproces pro podprocesy, které SQL Server vytvoří a hromádek. Jakmile SQL Server vytvoří všechny 255 pracovních podprocesů, je přibližně 140 MB.
  • Přidělení, která jsou provedeny další knihovny DLL nebo procesy, které jsou spuštěny v adresového prostoru serveru SQL (které se liší od systému), jako například:
    • Zprostředkovatelé OLE DB z jakékoli propojené servery.
    • Objekty COM, které jsou načteny používání systému sp_OA uložené procedury nebo rozšířené uložené procedury.
  • Žádné obrázky (exe nebo DLL), které jsou načteny adresu místa, které běžně používáte propojené servery sp_OA použít 20 až 25 MB, ale pravděpodobně více nebo rozšířené uložené procedury.
  • Haldy procesu a haldách, může vytvořit SQL Server. Během procesu spuštění to je obvykle 10 MB, ale může být další, pokud používáte propojené servery, sp_OA nebo rozšířené uložené procedury.
  • Přidělení z SQL Server zpracuje, které jsou větší než 8 KB, jako například ty povinné pro plány dotazu velké odesílat a přijímat vyrovnávacích pamětí, pokud je možnost konfigurace sítě velikost paketu blízko 8 KB atd. Pokud chcete zobrazit toto číslo, vyhledejte hodnotu OS Reserved, které je hlášeno v MEMORYSTATUS DBCC a, které je hlášeno jako počet stránek 8 KB. Typické hodnoty jsou 5 MB.
  • Pole sledovat informace o stavu pro každé vyrovnávací paměti je fond vyrovnávací paměti. Jedná se obvykle o 20 MB, pokud je SQL Server spuštěn s rozšíření AWE (Address Windowing) povolena, v tom případě může být výrazně vyšší.
V systémech, které mají velký počet databází může zabírat přidělení 64 KB, které jsou požadovány pro formátování protokolu všechny zbývající virtuální paměti. V tomto bodě následných přidělení může selhat, vzniklé v jednom nebo více chyb, které jsou uvedeny v "Příznaky" v tomto článku.

Pomocí -g spouštěcí parametr můžete pokyn SQL Server k ponechat k dispozici další virtuální paměti, že kombinace těchto přidělení související protokolu a jiných normální rozdělení se nespustí mimo virtuálního adresového prostoru.

Následující seznamy některé navrhované počáteční body pro tabulky -g hodnotu v závislosti na počtu databází a verze serveru:
Zmenšit tuto tabulkuRozšířit tuto tabulku
databasesSQL Server 7.0SQL Server 2000
250-g134Není k dispozici
500-g185Není k dispozici
750-g237Není k dispozici
1000-g288-g288
1250-g340-g340
1500-g392-g392
Tato tabulka byla vypočtena pomocí typické hodnoty, které jsou uvedeny a je také založeny na předpokladu, které jsou používány žádné činnosti propojený server sp_OA nebo rozšířené uložené procedury. Také je založena na předpokladu, že nepoužíváte AWE a Profiler, že SQL není. Některá z těchto podmínek může vyžadovat zvětšete hodnotu -g.

Společnost Microsoft doporučuje provést vážné aspektem před spustit server s další databází než to protože režii pro nutnosti toto číslo databází v systému je vyžadován trvá šarže virtuální paměti od fondu vyrovnávací paměti, což může vést nízký výkon systému jako celku.

Vytváření šarže databází má navíc nejvýznamnější vliv na virtuální paměti. Jsou také přidělení paměti-databáze může způsobit podmínku out paměť fondu vyrovnávací paměti. Například obdržet následující chybovou zprávu:
Chyba: 701 závažnosti: 17, stav: 123.
Je nedostatek systémové paměti ke spuštění tohoto dotazu.
Tento druh podmínku out paměti může být více běžné v SQL Server 2005, protože SQL Server 2005 sleduje další metadata databázi než starší verze serveru SQL.

Při sledování využití indexu pomocí sys.dm_db_index_usage_stats uložené procedury operace může vyžadovat značné množství paměti. Operace vyžaduje značné množství paměti, pokud má každý databáze šarže indexy.

Vlastnosti

ID článku: 316749 - Poslední aktualizace: 28. února 2007 - Revize: 11.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
Klíčová slova: 
kbmt kberrmsg kbtshoot kbnofix kbprb KB316749 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:316749

Dejte nám zpětnou vazbu

 

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