Découverte de SQL Server par la pratique
pour les administrateurs expérimentés
Module 3 : Le serveur
Patrick GuimonetArchitecte Infrastructure
Division Plateforme et EcosystèmeMicrosoft France
http://blogs.technet.com/patricg
Objectifs
Décrire la gestion de la mémoire de SQL Server
Décrire l’architecture de gestion de la mémoire
Décrire l’architecture des processus et des threads
Configurer le serveur de bases de données
Gestion de la mémoire (1/2)SQL Server 2005 gère dynamiquement et automatiquement la mémoire.
SQL Server divise sa mémoire en 2 parties principales :
Le Buffer Pool (BPool) qui est utilisé pour toutes les allocations de 8Ko ou moins
Il s’agit essentiellement des pages d’index et de données.
La taille de cette zone évolue entre deux limites définies par les paramètres systèmes :
min server memory et max server memory
La zone d’espace réservée (ou MemToLeave) qui est utilisée pour toutes les allocations
qui dépassent 8Ko
Cette zone est de taille fixe et continue.
Sa taille est définie par la formule : 256Mo + (max worker threads * 512 Ko).
Gestion de la mémoire (2/2)Une hiérachie de composants se partagent la gestion de la mémoire ;
1. les nœuds mémoires,
2. Les agents mémoires (les clerks) qui gèrent des caches et des pools
3. Les objets
De nombreux éléments utilisent ces composants :
Le cache de procédures
Le cache des ordres SQL
Le gestionnaire de verrous
Le CLR (Common Language Runtime), …
Pour de plus amples détails, vous pouvez allez sur le blog suivant :
http://blogs.msdn.com/slavao/articles/441058.aspx
Architecture mémoire
2 fonctions principales du SQLOS :
Ordonnancement non préemptif
Gestion de la mémoire
WindowsWindows
SQL OSSQL OS
SQL EngineSQL Engine
CLR 2.0CLR 2.0
CLR 2.0CLR 2.0
SQLOS
Nœuds d’ordonnancement
Ordonnanceurs
Tâches
Threads de travail
Threads systèmes
Nœuds mémoire
Agents mémoire (clercs)
Caches
Pools
Objets mémoire
Surveillance des ressources Gestion des exceptions
Gestion de la mémoireOrdonnancementnon préemptif
Processus & threads
SQL Server s’exécute sous la forme d’un processus lançant plusieurs threads en parallèle.
Les threads partagent le même espace d’adressage.
Les changements de contextes sont gérés en mode noyau. On peut utiliser des threads gérées
en mode utilisateurs, les fibres.
La couche OLE DB sert de couche de communication entre le le moteur relationnel au sens stric
et le moteur de stockage.
Threads systèmesSQL Server exécute un certain nombre d’opérations en tâches de fond via des threads systèmes. Les principales
sont :Le lazywriter (écriture sur disque des blocs de données modifiés); le log writer (écriture sur disque des
fichiers journaux); Les checkpoints; Les nettoyages de bases (cleanup); Les mises à jour automatique des
statistiques; Les réductions de taille des fichiers
WorkerThread
Log Writer
STORAGEENGINE
Client
Client
Client
UserProcess
UserProcess
UserProcess
USERS
WorkerThread
DatabaseBufferCache
Data Files
OpenData
Services
RELATIONALENGINE
OLEDB
LogCache
Memory Pool
Log Files
Lazy Writer
DatabaseCleanup
DatabaseShrinking
Threads utilisateurs
SQL Server emploie une architecture de serveur partagé car un pool de
threads de travail est automatiquement démarrée pour traiter les requêtes
utilisateurs.
WorkerThread
WorkerThread
STORAGEENGINE
Client
Client
Client
UserProcess
UserProcess
UserProcess
USERS
WorkerThread
DatabaseBufferCache
Data Files
OpenData
Services
RELATIONALENGINE
OLEDB
Ressources SQL Server 2005
• Le site français sur SQL Server 2005(livres blancs, webcasts en français)
http://www.microsoft.com/france/sql/sql2005
• Blog francophone (actualités, trucs & astuces en français)http://blogs.technet.com/patricg
• Le site Technet français (ressources techniques en français)http://www.microsoft.com/france/technet/produits/sql/2005
• Le site global sur SQL Server 2005http://www.microsoft.com/sql/2005
• Le site Technet global (SQL Server TechCenter)http://www.microsoft.com/technet/prodtechnol/sql/
• SQL Server Developer Centerhttp://msdn.microsoft.com/sql/2005/
Votre potentiel, notre passion…
A bientôtet merci d’avoir suivi cette vidéo...
© 2006 Microsoft France© 2006 Microsoft France