Skip to content

Commit

Permalink
Quelques corrections
Browse files Browse the repository at this point in the history
  • Loading branch information
gleu committed Dec 2, 2021
1 parent b10a822 commit 0706c71
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions postgresql/perform.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1472,13 +1472,13 @@ SELECT m.* FROM pg_statistic_ext join pg_statistic_ext_data on (oid = stxoid),
le planificateur est libre de joindre dans n'importe quel ordre les tables indiquées.
Par exemple, il peut générer un plan de requête joignant
A à B par la condition <literal>WHERE</literal> <literal>a.id =
b.id</literal>, puis joingnant C à cette table jointe par
b.id</literal>, puis joignant C à cette table jointe par
l'autre condition <literal>WHERE</literal>. Ou il peut joindre B à C,
puis le résultat avec A. Ou il peut joindre A
à C, puis les joindre avec B, mais cela serait inefficace, puisque
le produit cartésien complet de A et C devra être formé alors qu'il n'y a
pas de condition applicable dans la clause <literal>WHERE</literal> pour
optimiser cette la jointure. (Toutes les jointures dans
optimiser cette jointure. (Toutes les jointures dans
l'exécuteur <productname>PostgreSQL</productname> se produisent entre deux
tables, il est donc nécessaire de construire le résultat de
l'une ou de l'autre de ces façons). Le point important est que ces
Expand Down Expand Up @@ -1525,15 +1525,15 @@ SELECT m.* FROM pg_statistic_ext join pg_statistic_ext_data on (oid = stxoid),

il est valide de joindre A en premier soit à B, soit à C. Actuellement, seul
un <literal>FULL JOIN</literal> contraint complètement l'ordre de
jointure. En pratique, La plupart des cas impliquant un <literal>LEFT
jointure. En pratique, la plupart des cas impliquant un <literal>LEFT
JOIN</literal> ou un <literal>RIGHT JOIN</literal> peuvent être réarrangés
jusqu'à un certain degré.
</para>

<para>
Sémantiquement, la syntaxe d'une jointure interne explicite (<literal>INNER JOIN</literal>,
<literal>CROSS JOIN</literal> ou <literal>JOIN</literal>) revient
à lister les relations en entrées du
à lister les relations en entrée du
<literal>FROM</literal>, donc sans contraindre l'ordre de la jointure.
</para>

Expand Down Expand Up @@ -1571,7 +1571,7 @@ SELECT * FROM a JOIN (b JOIN c ON (b.ref = c.id)) ON (a.id = b.id);</programlist

<programlisting>SELECT * FROM a CROSS JOIN b, c, d, e WHERE ...;</programlisting>

Avec <varname>join_collapse_limit</varname> = 1, le planificateur est
Avec <varname>join_collapse_limit</varname> = 1, le planificateur est
forcé de joindre A à B avant la jointure aux autres tables, mais
sans restreindre ses choix par ailleurs. Dans cet exemple, le nombre d'ordres de
jointures possibles est réduit par un facteur de cinq.
Expand Down

0 comments on commit 0706c71

Please sign in to comment.