root/traduc/branches/bv747/manuel/ref/analyze.sgml

Revision 104, 6.8 kB (checked in by gleu, 3 years ago)

Des sauts de ligne en trop dans les exemples.

Line 
1 <!--
2 $Header: /var/lib/cvs/pgsql-fr/sgml/ref/analyze.sgml,v 1.8.2.1 2005/03/14 06:03:01 guillaume Exp $
3 PostgreSQL documentation
4 -->
5
6 <refentry id="SQL-ANALYZE">
7  <refmeta>
8   <refentrytitle id="sql-analyze-title">ANALYZE</refentrytitle>
9   <refmiscinfo>SQL - Instructions du langage</refmiscinfo>
10  </refmeta>
11
12  <refnamediv>
13   <refname>ANALYZE</refname>
14   <refpurpose>récupère des statistiques sur une base de données</refpurpose>
15  </refnamediv>
16
17  <indexterm zone="sql-analyze">
18   <primary>ANALYZE</primary>
19  </indexterm>
20
21  <refsynopsisdiv>
22 <synopsis>
23 ANALYZE [ VERBOSE ] [ <replaceable class="PARAMETER">table</replaceable> [ (<replaceable class="PARAMETER">colonne</replaceable> [, ...] ) ] ]
24 </synopsis>
25  </refsynopsisdiv>
26
27  <refsect1>
28   <title>Description</title>
29
30   <para>
31    <command>ANALYZE</command> collecte des statistiques sur le contenu des
32    tables de la base de données et stocke les résultats dans la table système
33    <literal>pg_statistic</literal>. L'optimiseur de requêtes les utilise pour
34    déterminer les plans d'exécution les plus efficaces.
35   </para>
36
37   <para>
38    Sans paramètre, <command>ANALYZE</command> examine chaque table dans la base
39    de données en cours. Avec un paramètre, <command>ANALYZE</command> examine
40    seulement cette table. Il est possible de donner une liste des noms de
41    colonnes, auquel cas seules les statistiques concernant ces colonnes sont
42    collectées.
43   </para>
44  </refsect1>
45
46  <refsect1>
47   <title>Paramètres</title>
48
49   <variablelist>
50    <varlistentry>
51     <term><literal>VERBOSE</literal></term>
52     <listitem>
53      <para>
54       Active l'affichage de messages de progression.
55      </para>
56     </listitem>
57    </varlistentry>
58
59    <varlistentry>
60     <term><replaceable class="PARAMETER">table</replaceable></term>
61     <listitem>
62      <para>
63       Le nom (éventuellement précédé du nom du schéma) d'une table spécifique à
64       analyser. Par défaut, il s'agit de toutes les tables dans la base
65       de données en cours.
66      </para>
67     </listitem>
68    </varlistentry>
69
70    <varlistentry>
71     <term><replaceable class="PARAMETER">column</replaceable></term>
72     <listitem>
73      <para>
74       Le nom d'une colonne spécifique à analyser. Par défaut, toutes
75       les colonnes.
76      </para>
77     </listitem>
78    </varlistentry>
79   </variablelist>
80  </refsect1>
81
82  <refsect1>
83   <title>Sorties</title>
84
85    <para>
86     Quand <literal>VERBOSE</> est spécifié, <command>ANALYZE</> émet des
87     messages de progression pour indiquer quelle table est en cours de
88     traitement. Sont aussi affichées différentes statistiques sur les tables.
89    </para>
90  </refsect1>
91
92  <refsect1>
93   <title>Notes</title>
94
95   <para>
96    Lancer périodiquement <command>ANALYZE</command> est une bonne idée, tout
97    comme le lancer après de grosses modifications sur le contenu d'une table.
98    Des statistiques à jour aideront l'optimiseur à choisir le plan de
99    requête le plus approprié et amélioreront du coup la rapidité du traitement
100    des requêtes. Une stratégie habituelle est de lancer <xref
101    linkend="sql-vacuum" endterm="sql-vacuum-title"> et
102    <command>ANALYZE</command> une fois par jour au moment où le serveur est le
103    moins sollicité.
104   </para>
105
106   <para>
107    Contrairement à <command>VACUUM FULL</command>, <command>ANALYZE</command>
108    requiert seulement un verrou en lecture sur la table cible, donc il peut
109    être lancé en parallèle à d'autres activités sur la table.
110   </para>
111
112   <para>
113    Les statistiques récupérées par <command>ANALYZE</command> incluent
114    habituellement une liste des quelques valeurs les plus communes dans chaque
115    colonne et un histogramme affichant une distribution approximative des
116    données dans chaque colonne. L'un ou l'autre pourraient être omis
117    si <command>ANALYZE</command> les trouve inintéressants (par exemple, dans
118    une colonne à clé unique, il n'y a pas de valeurs communes) ou si le type de
119    données de la colonne ne supporte pas les opérateurs appropriés. Il y a plus
120    d'informations sur les statistiques dans le <xref linkend="maintenance">.
121   </para>
122
123   <para>
124    Pour les grosses tables, <command>ANALYZE</command> prend aléatoirement
125    plusieurs lignes de la table, au hasard, plutôt que d'examiner chaque ligne.
126    Ceci permet à des tables très larges d'être examinées dans une petite période
127    de temps. Notez, néanmoins, que les statistiques sont seulement
128    approximatives et qu'elles changeront légèrement à chaque fois
129    qu'<command>ANALYZE</command> est lancé, même si le contenu réel de la table
130    n'a pas changé. Ceci pourrait résulter en de petites modifications dans les
131    coûts estimés de l'optimiseur affichés par <command>EXPLAIN</command>. Dans
132    de rare situations, ce non-déterminisme causera le choix d'un plan de requête
133    différent par l'optimiseur entre deux lancements
134    d'<command>ANALYZE</command>. Pour éviter ceci, augmentez le nombre de
135    statistiques récupérées par <command>ANALYZE</command>, comme décrit
136    ci-dessous.
137   </para>
138
139   <para>
140    L'étendue des analyses est contrôlable globalement par le paramètre
141    <varname>DEFAULT_STATISTICS_TARGET</varname> ou colonne par
142    colonne en initialisant la cible des statistiques par colonne avec
143    <command>ALTER TABLE ... ALTER COLUMN ... SET STATISTICS</command> (voir
144    <xref linkend="sql-altertable" endterm="sql-altertable-title">). Cette valeur
145    cible initialise le nombre maximum d'entrées dans la liste des valeurs les
146    plus communes et le nombre maximum de points dans l'histogramme. La valeur
147    cible par défaut est de 10 mais ceci peut être ajusté en prenant compte la
148    précision des estimations de l'optimiseur, le temps pris par
149    <command>ANALYZE</command> et l'espace total occupé dans
150    <literal>pg_statistic</literal>. En particulier, initialiser la cible des
151    statistiques à zéro désactive la récupération de statistiques pour cette
152    colonne. Il pourrait être utile de le faire pour les colonnes qui ne sont
153    jamais utilisées dans les clauses <literal>WHERE</>, <literal>GROUP BY</> ou
154    <literal>ORDER BY</> de requêtes car l'optimiseur n'utilisera pas les
155    statistiques pour ces colonnes.
156   </para>
157
158   <para>
159    La plus grande cible de statistiques de toutes les colonnes en cours d'analyse
160    détermine le nombre de lignes testées pour préparer les
161    statistiques de la table. Augmenter cette cible cause une augmentation
162    proportionnelle du temps et de l'espace nécessaires à
163    exécuter <command>ANALYZE</command>.
164   </para>
165  </refsect1>
166
167  <refsect1>
168   <title>Compatibilité</title>
169
170   <para>
171    Il n'existe pas d'instruction <command>ANALYZE</command> dans le standard
172    SQL.
173   </para>
174  </refsect1>
175 </refentry>
176
177 <!-- Keep this comment at the end of the file
178 Local variables:
179 mode: sgml
180 sgml-omittag:nil
181 sgml-shorttag:t
182 sgml-minimize-attributes:nil
183 sgml-always-quote-attributes:t
184 sgml-indent-step:1
185 sgml-indent-data:t
186 sgml-parent-document:nil
187 sgml-default-dtd-file:"../reference.ced"
188 sgml-exposed-tags:nil
189 sgml-local-catalogs:"/usr/lib/sgml/catalog"
190 sgml-local-ecat-files:nil
191 End:
192 -->
Note: See TracBrowser for help on using the browser.