Chapitre 42. Pr�sentation des m�canismes internes de PostgreSQL

Table des mati�res
42.1. Chemin d'une requ�te
42.2. Moyens pour �tablir des connexions
42.3. �tape d'analyse
42.3.1. Analyseur
42.3.2. Processus de transformation
42.4. Syst�me de r�gles de PostgreSQL
42.5. Planificateur/Optimiseur
42.6. Ex�cuteur

Auteur�: Ce chapitre vient originellement de Enhancement of the ANSI SQL Implementation of PostgreSQL, la th�se de Stefan Simkovics pr�par�e � l'universit� de technologie de Vienne sous la direction du Dr. Georg Gottlob et de son assistante Katrin Seyr.

Ce chapitre pr�sente la structure interne du serveur PostgreSQL. Apr�s avoir lu les sections suivantes, vous devriez avoir une id�e sur la fa�on dont une requ�te est ex�cut�e. Ce chapitre n'a pas pour but de donner une description d�taill�e des op�rations internes de PostgreSQL car un tel document serait �norme. � la place, ce chapitre a pour but d'aider le lecteur � comprendre la suite g�n�rale des op�rations arrivant au niveau serveur � partir du moment o� une requ�te est re�ue jusqu'au moment o� les r�sultats sont renvoy�s au client.

42.1. Chemin d'une requ�te

Ici, nous allons donner un rapide aper�u des �tapes qu'une requ�te doit franchir pour obtenir un r�sultat.

  1. Une connexion doit �tre �tablie � partir d'une application au serveur PostgreSQL. L'application transmet une requ�te au serveur et attend de recevoir les r�sultats renvoy�s par le serveur.

  2. L'�tape de l'analyse v�rifie la requ�te transmise par l'application au niveau de la syntaxe et cr�e un arbre repr�sentant la requ�te.

  3. Le syst�me de r��criture prend l'arbre repr�sentant la requ�te et cherche les r�gles (stock�es dans les catalogues syst�me) � appliquer � l'arbre de la requ�te. Il ex�cute les transformations donn�es dans les corps des r�gles. Une application du syst�me de r��criture est la r�alisation des vues.

    � chaque fois qu'une requ�te comprenant une vue (c'est-�-dire une table virtuelle) est ex�cut�e, le syst�me de r��criture modifie la requ�te de l'utilisateur par la d�finition de la vue, c'est-�-dire une requ�te qui acc�de aux tables de base.

  4. Le planificateur/optimiseur prend l'arbre (r��crit) de la requ�te et cr�e un plan d'ex�cution qui sera l'entr�e de l'ex�cuteur.

    Il le fait tout d'abord en cr�ant tous les chemins possibles menant au m�me r�sultat. Par exemple, s'il existe un index sur une relation � parcourir, il existe deux chemins pour le parcours. Une possibilit� est un parcours simple s�quentiel et l'autre possibilit� est d'utiliser l'index. Ensuite, le co�t pour l'ex�cution de chaque plan est estim� et le plan le moins co�teux est choisi et renvoy�.

  5. L'ex�cuteur passe r�cursivement dans l'arbre constitu� par le plan et retrouve les lignes suivant la fa�on repr�sent�e par le plan. L'ex�cuteur fait usage du syst�me de stockage lors du parcours des relations, ex�cute les tris et jointures, �value les qualifications et finalement renvoie les lignes en question.

Dans les sections suivantes, nous allons parler de chacun des �l�ments discut�s ci-dessus avec plus de d�tails pour donner une meilleure compr�hension des structures de donn�es et de contr�le internes de PostgreSQL.