|
Verschiedene Versionen, verschiedene Möglichkeiten. Die Version des Betriebssytems und die Version des SQL Servers sind entsscheidend, wieviel RAM tatsächlich zur Verfügung steht. Besitzen Sie ein System über 4 GB RAM, dann sollten sie unbedingt folgendes wissen...
Unter jedem SQL Server strebt man danach, mehr Speicher einsetzen zu können. Doch unter SQL Server 2000 stößt man dabei nicht auf natürliche Barrieren, wie das Betriebssystem, sondern in erster Linie auf lizenzrechtliche Beschneidungen. Während Windows Server Standard 2000/2003 bis zu 4 GB RAM erlauben würden, gibt der SQL Server Standard seinen Geist bereits bei 2 GB auf. Nur die Developer und die Enterprise Versionen unterstüzen den Arbeitsspeicher bis Betriebssystemgrenzen. Diese betragen unter Windows Advanced Server 8 GB und unter Windows Datacenter Server 64 GB.
Unter SQL Server 2005 sieht die Welt schon anders aus. Man hatte ein Einsehen und die Grenze für den Gebrauch des Arbeitsspeichers wurde dem Betriebssystem angeglichen (Ausnahme natürlich: SQL Express Version mit max. 1 GB RAM).
Wer nun denkt, daß nach dem Einbau des Speichers alles getan wäre, was zu tun ist, hat sich leider geschnitten. Vor allem diejenigen, die mehr als 4 GB RAM einstzen wollen sollten besonders aufmerksam sein.
Die Grundeinstellungen des SQL Server sind so konfiguriert, daß Arbeitsspeicher dynamisch reguliert wird. Keine schlechte Geschichte, allerdings ist auf diese Art der Zugriff auf "mehr" Speicher nicht möglich. Ein 32-bit Betriebssystem ist auf Grund seiner Architektur auf 4 GB RAM beschränkt.
Windows teilt dabei den Arbeitsspeicher folgendermaßen auf:
2 GB werden für den Usermode (in diesem laufen die Anwendungen) und weitere 2 GB dem Kernelmode vorreserviert. Sofern eine Anwendung nun mehr als 2 GB (Usermode) benötigt, kann das Betriebssystem ihm virtuellen Speicher zuweisen. Letztendlich ist dieser Speicherzugriff deutlich langsamer. Daher ist es möglich durch Schalter in der boot.ini Eingrif auf die Arbeitsspeicherverteilung vorzunehmen.
Erst das sogenannte AWE (Address Windowing Extensions) erlaubt es Anwendungen auf den Speicher jenseits dieser 4 GB Grenze zuzugreifen. Leider kommt man nicht einfach so in den Genuß des AWE, denn das muss dem Betriebssystem erst mitgeteilt werden und anschliessend auch dem SQL Server.
Bitte beachten Sie dabei, daß AWE nur für den Arbeitsspeicher über 4 GB zuständig ist!
Umverteilung des Arbeitsspeichers unter 4 GB
Dazu müssen Sie den Schalter /3GB in der boot.ini hinzufügen. Diese Einstellung ist dann sinnvoll, wenn ihr Server den Anwendungen mehr als 2 GB zur Verfügung stellen soll. In unserem Fall ist dies natürlich der SQL Server, dem nun statt 2 GB nun 3 GB zur Verfügung stehen. Die Software muss allerdings diesen Zugriffunterstützen (Flag LargeAddressAware). Hier hilft übrigens auch eine Software weiter, die sich auf der Windows CD enthalten sein sollte: Imagecfg!
Übrigens stellt der Schalter /3GB unter Windows 2003 einen weitere Schalter zur Verfügung mit dem Sie eine gewünschte Größe für den Usermode angeben können: /userva=gewünschter Speicher. Also etwa folgendes Beispiel: /3GB /userva=3072 (3072 ist zugleich Obergrenze)
Zugriff auf Speicher jenseits der 4 GB Grenze
Hier ist in der boot.ini ein weiterer Schalter notwendig: /pae. Erst ab diesem Moment haben Sie AWE eingeschalten und somit dem Betriebssystem Zugriff auf > 4 GB gewährt. In HOT-Add Speicher Systemen wird der Schalter automatisch gesetzt.
Nachdem, was wir bisher wissen, müssen wir also bei Systemen von beipsw. 8 GB RAM 2 Schalter setzen: /3GB um 1 GB ujnter 4 GB zu gewinnen und /pae um auf den Speicher jenseits von 4 GB zugreifen zu können.
Achtung: Sofern Sie mehr als 16 GB einsetzen, sollten sie keinesfalls mehr den Schalter /3GB einsetzen. Denn Windows kann den Bereich über 16 GB ansonsten nicht mehr korrekt adressieren.
Aktivieren des AWE Modus unter SQL Server
Bisher haben wir alle notwendigen Schritte unter die Lupe genommen, um das Betriebssystem vorzubereiten. Nun ist der SQL Server an der Reihe:
Aktivieren von AW unter SQL 2000
Das Aktivieren geht rel. schnell von der Hand. Mit folgendem Prozedurenaufruf aktivieren Sie unter SQL Server 2000 den AWE Modus:
sp_configure 'show advanced options',1 reconfigure go sp_configure 'awe enabled', 1 reconfigure go
Allerdings sollten sie unbedingt auf folgendes achten: Der SQL Server 2000 unterstütz AWE nur statisch. Das heißt, daß Sie soeben Ihr System so konfiguriert haben, daß der SQL Server sich alles bis auf 128 MB holt. Daher sollten Sie auch nich folgende Zeilen hinzufügen:
sp_configure 'max server memory', 6144 reconfigure go
Damit stoppen Sie den Speicherhunger und geben für den SQL Server 2000 eine maximale Speichergröße an.
TIPP: Wer SQL Server 2000 unter SP 4 laufen hat, braucht evtl noch folgenden Hotfix:
http://www.microsoft.com/downloads/details.aspx?FamilyID=7C407047-3F1F-48B8-9E4C-DC32875E1961&displaylang=en#Overview
Aktivieren des AWE unter SQL Server 2005
Dazu ist eigtl nichts weiter zu tun als AWE einzuschalten. Dankenswerter Weise hat es diese Funtkion in das SQL Server Management Studio geschafft.

An dieser Stelle sollte man allerdings auf ein paar Dinge achten: Der SQL Server 2005 kann den AWE nun auch dynamisch verwalten. Allerdings funktioniert das nur unter Windows 2003. Wer also SQL Server unter Windows 2000 in Betrieb hat, sollte also auch hier wieder eine Obergrneze für den Speicherbedarf festlegen.
Fazit:
Zusammenfassend kann man folgende Aufstellung bilden:
- Windows 2000 /2003 Standard ==> nur Schalter /3GB sinnvoll; kein AWE möglich
- Windows 2000/2003 mit > 4 GB RAM und < 16GB RAM ==> /3GB /pae
- Windows 2000 mit > 16GB RAM ==> /pae (kein 3GB)
- SQL Server 2000 Stramdard ==> max 2 GB möglich
- Windows 2000/2003 mit > 4 GB und SQL Server 2000 ==> AWE Statisch (max memory vergeben)
- Windows 2000 mit > 4 GB und SQL Server 2005 ==> AWE statisch (max Memory vergeben)
- Windows 2003 mit > 4 GB und SQL Server 2005 ==> AWE dynamisch
Ganz schön konfus, gell.. ;-)
|