Changeset 878
- Timestamp:
- 01/21/08 11:15:42 (1 year ago)
- Files:
-
- traduc/trunk/manuel/cube.xml (modified) (22 diffs)
- traduc/trunk/manuel/ltree.xml (modified) (3 diffs)
- traduc/trunk/manuel/pgbench.xml (modified) (27 diffs)
- traduc/trunk/manuel/seg.xml (modified) (15 diffs)
- traduc/trunk/manuel/xml2.xml (modified) (23 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
traduc/trunk/manuel/cube.xml
r874 r878 9 9 10 10 <para> 11 This module implements a data type <type>cube</type> for12 representing multi-dimensional cubes.11 Ce module implémente le type de données <type>cube</type>, représentant des 12 cubes à plusieurs dimensions. 13 13 </para> 14 14 15 15 <sect2> 16 <title>Syntax</title> 17 18 <para> 19 The following are valid external representations for the <type>cube</type> 20 type. <replaceable>x</replaceable>, <replaceable>y</replaceable>, etc denote floating-point 21 numbers: 16 <title>Syntaxe</title> 17 18 <para> 19 Ce qui suit est un ensemble de représentations externes valides pour le 20 type <type>cube</type>. <replaceable>x</replaceable>, 21 <replaceable>y</replaceable>, etc sont des nombres en virgule 22 flottante : 22 23 </para> 23 24 24 25 <table> 25 <title> Cube external representations</title>26 <title>Représentations externes d'un cube</title> 26 27 <tgroup cols="2"> 27 28 <tbody> 28 29 <row> 29 30 <entry><literal><replaceable>x</replaceable></literal></entry> 30 <entry> A one-dimensional point31 (or, zero-length one-dimensional interval)31 <entry>Une valeur en virgule flottante représentation un point sur 32 une dimension ou un élément cube zéro à une dimension 32 33 </entry> 33 34 </row> 34 35 <row> 35 36 <entry><literal>(<replaceable>x</replaceable>)</literal></entry> 36 <entry> Same as above</entry>37 <entry>Identique à ci-dessus</entry> 37 38 </row> 38 39 <row> 39 40 <entry><literal><replaceable>x1</replaceable>,<replaceable>x2</replaceable>,...,<replaceable>xn</replaceable></literal></entry> 40 <entry> A point in n-dimensional space, represented internally as a41 zero-volume cube41 <entry>Un point dans un espace à n dimensions, représenté en interne 42 comme une boîte de volume zéro 42 43 </entry> 43 44 </row> 44 45 <row> 45 46 <entry><literal>(<replaceable>x1</replaceable>,<replaceable>x2</replaceable>,...,<replaceable>xn</replaceable>)</literal></entry> 46 <entry> Same as above</entry>47 <entry>Identique à ci-dessus</entry> 47 48 </row> 48 49 <row> 49 50 <entry><literal>(<replaceable>x</replaceable>),(<replaceable>y</replaceable>)</literal></entry> 50 <entry>A one-dimensional interval starting at <replaceable>x</replaceable> and ending at <replaceable>y</replaceable> or vice versa; the 51 order does not matter 51 <entry>Élément cube à une dimension commençant à 52 <replaceable>x</replaceable> et se terminant à 53 <replaceable>y</replaceable> ou vice-versa ; l'ordre n'importe pas 52 54 </entry> 53 55 </row> 54 56 <row> 55 57 <entry><literal>[(<replaceable>x</replaceable>),(<replaceable>y</replaceable>)]</literal></entry> 56 <entry> Same as above</entry>58 <entry>Identique à ci-dessus</entry> 57 59 </row> 58 60 <row> 59 61 <entry><literal>(<replaceable>x1</replaceable>,...,<replaceable>xn</replaceable>),(<replaceable>y1</replaceable>,...,<replaceable>yn</replaceable>)</literal></entry> 60 <entry> An n-dimensional cube represented by a pair of its diagonally61 oppos ite corners62 <entry>Boîte à n dimensions représentée par une paire pour ses coins 63 opposés 62 64 </entry> 63 65 </row> 64 66 <row> 65 67 <entry><literal>[(<replaceable>x1</replaceable>,...,<replaceable>xn</replaceable>),(<replaceable>y1</replaceable>,...,<replaceable>yn</replaceable>)]</literal></entry> 66 <entry> Same as above</entry>68 <entry>Identique à ci-dessus</entry> 67 69 </row> 68 70 </tbody> … … 71 73 72 74 <para> 73 It does not matter which order the opposite corners of a cube are 74 entered in. The <type>cube</type> functions 75 automatically swap values if needed to create a uniform 76 <quote>lower left — upper right</quote> internal representation. 77 </para> 78 79 <para> 80 White space is ignored, so <literal>[(<replaceable>x</replaceable>),(<replaceable>y</replaceable>)]</literal> is the same as 75 Peu importe l'ordre dans lesquels sont saisis les coins opposés d'un cube. 76 Les fonctions <type>cube</type> s'occupent de la bascule 77 pour réaliser une représentation uniforme <quote>en bas à gauche, en haut à 78 droite<quote>. 79 </para> 80 81 <para> 82 Les espaces blancs sont ignorés, donc 83 <literal>[(<replaceable>x</replaceable>),(<replaceable>y</replaceable>)]</literal> est identique à 81 84 <literal>[ ( <replaceable>x</replaceable> ), ( <replaceable>y</replaceable> ) ]</literal>. 82 85 </para> … … 84 87 85 88 <sect2> 86 <title>Precision</title> 87 88 <para> 89 Values are stored internally as 64-bit floating point numbers. This means 90 that numbers with more than about 16 significant digits will be truncated. 91 </para> 92 </sect2> 93 94 <sect2> 95 <title>Usage</title> 96 97 <para> 98 The <filename>cube</filename> module includes a GiST index operator class for 99 <type>cube</type> values. 100 The operators supported by the GiST opclass include: 89 <title>Précision</title> 90 91 <para> 92 Les valeurs sont enregistrées en interne sous la forme de nombres en 93 virgule flottante. Cela signifie que les nombres avec plus de 16 chiffres 94 significatifs seront tronqués. 95 </para> 96 </sect2> 97 98 <sect2> 99 <title>Utilisation</title> 100 101 <para> 102 Le module <filename>cube</filename> inclut une classe d'opérateur pour 103 index GiST pour les valeurs de type <type>cube</type>. Les opérateurs 104 supportés par la classe d'opérateur GiST incluent&nbp;: 101 105 </para> 102 106 … … 104 108 <listitem> 105 109 <programlisting> 106 a = b Same as110 a = b Identique à 107 111 </programlisting> 108 112 <para> 109 The cubes a and b are identical.113 Les cubes a et b sont identiques. 110 114 </para> 111 115 </listitem> 112 116 <listitem> 113 117 <programlisting> 114 a && b Overlaps118 a && b Couvre une partie 115 119 </programlisting> 116 120 <para> 117 The cubes a and b overlap.121 Les cubes a et b se couvrent en partie. 118 122 </para> 119 123 </listitem> 120 124 <listitem> 121 125 <programlisting> 122 a @> b Cont ains126 a @> b Contient 123 127 </programlisting> 124 128 <para> 125 The cube a contains the cube b.129 Le cube a contient le cube b. 126 130 </para> 127 131 </listitem> 128 132 <listitem> 129 133 <programlisting> 130 a <@ b Cont ained in134 a <@ b Contenu dans 131 135 </programlisting> 132 136 <para> 133 The cube a is contained in the cube b.137 Le cube a est contenu dans le cube b. 134 138 </para> 135 139 </listitem> … … 137 141 138 142 <para> 139 (Before PostgreSQL 8.2, the containment operators @> and <@ were140 respectively called @ and ~. These names are still available, but are141 d eprecated and will eventually be retired. Notice that the old names142 are reversed from the convention formerly followed by the core geometric143 datatypes!)144 </para> 145 146 <para> 147 The standard B-tree operators are also provided, for example143 (Avant PostgreSQL 8.2, les opérateurs de contenance @> et <@ étaient 144 appelés respectivement @ et ~. Ces noms sont toujours disponibles mais sont 145 déclarés obsolètes et seront supprimés un jour. Notez que les anciens noms 146 sont inversés par rapport à la convention suivie par les types de données 147 géométriques !) 148 </para> 149 150 <para> 151 Les opérateurs du standard B-tree sont aussi fournis, par exemple : 148 152 149 153 <programlisting> 150 [a, b] < [c, d] Less than151 [a, b] > [c, d] Greater than154 [a, b] < [c, d] Plus petit que 155 [a, b] > [c, d] Plus grand que 152 156 </programlisting> 153 157 154 These operators do not make a lot of sense for any practical 155 purpose but sorting. These operators first compare (a) to (c), 156 and if these are equal, compare (b) to (d). That results in 157 reasonably good sorting in most cases, which is useful if 158 you want to use ORDER BY with this type. 159 </para> 160 161 <para> 162 The following functions are available: 158 Ces opérateurs n'ont pas vraiment de sens sauf en ce qui concerne le tri. 159 Ces opérateurs comparent en premier (a) à (c) et, s'ils sont égaux, 160 comparent (b) à (d). Cela fait un bon tri dans la plupart des cas, ce qui 161 est utile si vous voulez utiliser ORDER BY avec ce type. 162 </para> 163 164 <para> 165 Les fonctions suivantes sont disponibles : 163 166 </para> 164 167 165 168 <table> 166 <title> Cube functions</title>169 <title>Fonctions cube</title> 167 170 <tgroup cols="2"> 168 171 <tbody> 169 172 <row> 170 173 <entry><literal>cube(float8) returns cube</literal></entry> 171 <entry> Makes a one dimensional cube with both coordinates the same.174 <entry>Crée un cube à une dimension avec les mêmes coordonnées. 172 175 <literal>cube(1) == '(1)'</literal> 173 176 </entry> … … 176 179 <row> 177 180 <entry><literal>cube(float8, float8) returns cube</literal></entry> 178 <entry> Makes a one dimensional cube.181 <entry>Crée un cube à une dimension. 179 182 <literal>cube(1,2) == '(1),(2)'</literal> 180 183 </entry> … … 183 186 <row> 184 187 <entry><literal>cube(float8[]) returns cube</literal></entry> 185 <entry> Makes a zero-volume cube using the coordinates186 d efined by the array.188 <entry>Crée un cube de volume nul en utilisant les coordonnées 189 définies par le tableau. 187 190 <literal>cube(ARRAY[1,2]) == '(1,2)'</literal> 188 191 </entry> … … 191 194 <row> 192 195 <entry><literal>cube(float8[], float8[]) returns cube</literal></entry> 193 <entry> Makes a cube with upper right and lower left194 coordinates as defined by the two arrays, which must be of the195 same length.196 <entry>Crée un cube avec les coordonnées en haut à droite et en 197 bas à gauche définies par deux tableaux de flottants. Tous les 198 tableaux doivent être de la même longueur. 196 199 <literal>cube('{1,2}'::float[], '{3,4}'::float[]) == '(1,2),(3,4)' 197 200 </literal> … … 201 204 <row> 202 205 <entry><literal>cube(cube, float8) returns cube</literal></entry> 203 <entry>Makes a new cube by adding a dimension on to an 204 existing cube with the same values for both parts of the new coordinate. 205 This is useful for building cubes piece by piece from calculated values. 206 <entry>Construit un nouveau cube en ajoutant une dimension à un 207 cube existant avec les mêmes valeurs pour les deux parties de la 208 nouvelle coordonnée. Ceci est utile pour construire des cubes pièce 209 par pièce à partir des valeurs calculées. 206 210 <literal>cube('(1)',2) == '(1,2),(1,2)'</literal> 207 211 </entry> … … 210 214 <row> 211 215 <entry><literal>cube(cube, float8, float8) returns cube</literal></entry> 212 <entry>Makes a new cube by adding a dimension on to an 213 existing cube. This is useful for building cubes piece by piece from 214 calculated values. <literal>cube('(1,2)',3,4) == '(1,3),(2,4)'</literal> 216 <entry>Crée un nouveau cube en ajoutant une dimension sur un cube 217 existant. C'est utile pour construire des cubes pièce par pièce à partir 218 de valeurs calculées. 219 <literal>cube('(1,2)',3,4) == '(1,3),(2,4)'</literal> 215 220 </entry> 216 221 </row> … … 218 223 <row> 219 224 <entry><literal>cube_dim(cube) returns int</literal></entry> 220 <entry>Re turns the number of dimensions of thecube225 <entry>Renvoie le nombre de dimensions du cube 221 226 </entry> 222 227 </row> … … 224 229 <row> 225 230 <entry><literal>cube_ll_coord(cube, int) returns double </literal></entry> 226 <entry>Re turns the n'th coordinate value for the lower left227 corner of acube231 <entry>Renvoie la n-ième coordonnée pour le coin en bas à 232 gauche d'un cube 228 233 </entry> 229 234 </row> … … 232 237 <entry><literal>cube_ur_coord(cube, int) returns double 233 238 </literal></entry> 234 <entry>Re turns the n'th coordinate value for the235 upper right corner of acube239 <entry>Renvoie la n-ième coordonnée pour le coin en haut à droite d'un 240 cube 236 241 </entry> 237 242 </row> … … 239 244 <row> 240 245 <entry><literal>cube_is_point(cube) returns bool</literal></entry> 241 <entry>Re turns true if a cube is a point, that is,242 the two defining corners are the same.</entry>246 <entry>Renvoie true si un cube est aussi un point, c'est-à-dire si 247 les deux coins de définition sont identiques.</entry> 243 248 </row> 244 249 245 250 <row> 246 251 <entry><literal>cube_distance(cube, cube) returns double</literal></entry> 247 <entry>Re turns the distance between two cubes. If both248 cubes are points, this is the normal distance function.252 <entry>Renvoie la distance entre deux cubes. Si les deux cubes sont des 253 points, il s'agit de la fonction de distance habituelle. 249 254 </entry> 250 255 </row> … … 253 258 <entry><literal>cube_subset(cube, int[]) returns cube 254 259 </literal></entry> 255 <entry>Makes a new cube from an existing cube, using a list of 256 dimension indexes from an array. Can be used to find both the LL and UR 257 coordinates of a single dimension, e.g. 260 <entry>Crée un nouveau cube à partir d'un cube existant en utilisant une 261 liste d'index de dimension pour un tableau. Peut être utilisé pour 262 trouver les coordonnées en bas à gauche et en haut à droite d'une 263 dimension, par exemple : 258 264 <literal>cube_subset(cube('(1,3,5),(6,7,8)'), ARRAY[2]) = '(3),(7)'</literal>. 259 Or can be used to drop dimensions, or reorder them as desired, e.g. 265 Ou peut être utilisé pour supprimer des dimensions, ou pour les 266 réordonner comme voulu, par exemple : 260 267 <literal>cube_subset(cube('(1,3,5),(6,7,8)'), ARRAY[3,2,1,1]) = '(5, 3, 261 268 1, 1),(8, 7, 6, 6)'</literal>. … … 271 278 <row> 272 279 <entry><literal>cube_inter(cube, cube) returns cube</literal></entry> 273 <entry>Produ ces the intersection of twocubes280 <entry>Produit l'intersection de deux cubes 274 281 </entry> 275 282 </row> … … 277 284 <row> 278 285 <entry><literal>cube_enlarge(cube c, double r, int n) returns cube</literal></entry> 279 <entry>Increases the size of a cube by a specified radius in at least 280 n dimensions. If the radius is negative the cube is shrunk instead. This 281 is useful for creating bounding boxes around a point for searching for 282 nearby points. All defined dimensions are changed by the radius r. 283 LL coordinates are decreased by r and UR coordinates are increased by r. 284 If a LL coordinate is increased to larger than the corresponding UR 285 coordinate (this can only happen when r < 0) than both coordinates 286 are set to their average. If n is greater than the number of defined 287 dimensions and the cube is being increased (r >= 0) then 0 is used 288 as the base for the extra coordinates. 286 <entry>Augmente la taille d'un cube suivant un radius précisé 287 dans au moins n dimensions. Si le radius est négatif, la boîte est 288 diminuée. C'est utile pour créer des boîtes limitantes autour d'un 289 point dans le but de rechercher les points voisins. Toutes les 290 dimensions définies sont modifiées par le radius. Si n est plus grand 291 que le nombre de dimensions définies et que le cube est augmenté 292 (r >= 0), alors 0 est utilisé comme base des coordonnées 293 supplémentaires. 289 294 </entry> 290 295 </row> … … 295 300 296 301 <sect2> 297 <title> Defaults</title>298 299 <para> 300 I believe this union:302 <title>Par défaut</title> 303 304 <para> 305 Je crois que cette union : 301 306 </para> 302 307 <programlisting> … … 309 314 310 315 <para> 311 does not contradict common sense, neither does theintersection316 n'est pas en contradiction avec le bon sens et ne fait pas l'intersection 312 317 </para> 313 318 … … 321 326 322 327 <para> 323 In all binary operations on differently-dimensioned cubes, I assume the324 lower-dimensional one to be a cartesian projection, i. e., having zeroes325 in place of coordinates omitted in the string representation. The above326 examples are equivalent to:328 Dans toutes les opérations binaires sur des boîtes de différentes tailles, 329 je suppose que la plus petite est une projection cartésienne, c'est-à-dire 330 avoir des zéros à la place des coordonnées omises dans la représentation 331 sous forme de chaîne. Les exemples ci-dessous sont équivalents à : 327 332 </para> 328 333 … … 333 338 334 339 <para> 335 The following containment predicate uses the point syntax,336 while in fact the second argument is internally represented by a box.337 This syntax makes it unnecessary to define a separate point type338 and functions for (box,point) predicates.340 Le prédicat de contenance suivant utilise la syntaxe point alors qu'en 341 fait, le second argument est représenté en interne par une boîte. Cette 342 syntaxe rend inutile la définition du type spécial Point et les fonctions 343 pour le prédicat (boîte,point). 339 344 </para> 340 345 … … 352 357 353 358 <para> 354 For examples of usage, see the regression test <filename>sql/cube.sql</filename>. 355 </para> 356 357 <para> 358 To make it harder for people to break things, there 359 is a limit of 100 on the number of dimensions of cubes. This is set 360 in <filename>cubedata.h</filename> if you need something bigger. 361 </para> 362 </sect2> 363 364 <sect2> 365 <title>Credits</title> 366 367 <para> 368 Original author: Gene Selkov, Jr. <email>selkovjr@mcs.anl.gov</email>, 359 Pour des exemples d'utilisation, voir les tests de régression 360 <filename>sql/cube.sql</filename>. 361 </para> 362 363 <para> 364 Pour éviter toute mauvaise utilisation, le nombre de dimensions des cubes 365 est limité à 100. Cela se configure dans <filename>cubedata.h</filename> si 366 vous voulez l'augmenter. 367 </para> 368 </sect2> 369 370 <sect2> 371 <title>Crédits</title> 372 373 <para> 374 Auteur original : Gene Selkov, Jr. <email>selkovjr@mcs.anl.gov</email>, 369 375 Mathematics and Computer Science Division, Argonne National Laboratory. 370 376 </para> 371 377 372 378 <para> 373 My thanks are primarily to Prof.Joe Hellerstein374 (<ulink url="http://db.cs.berkeley.edu/~jmh/"></ulink>) for elucidating the375 gist of the GiST (<ulink url="http://gist.cs.berkeley.edu/"></ulink>), and376 to his former student, Andy Dong (<ulink377 url="http://best.me.berkeley.edu/~adong/"></ulink>), for his example378 written for Illustra,379 <ulink url="http://garcia.me.berkeley.edu/~adong/rtree"></ulink>.380 I am also grateful to all Postgres developers, present and past, for381 e nabling myself to create my own world and live undisturbed in it. And I382 would like to acknowledge my gratitude to Argonne Lab and to the383 U.S. Department of Energy for the years of faithful support of my database384 research.385 </para> 386 387 <para>388 Minor updates to this package were made by Bruno Wolff III389 <email>bruno@wolff.to</email> in August/September of 2002. These include390 changing the precision from single precision to double precision and adding391 some new functions.392 </para> 393 394 <para>395 Additional updates were made by Joshua Reich <email>josh@root.net</email> in396 July 2006. These include <literal>cube(float8[], float8[])</literal> and397 cleaning up the code to use the V1 call protocol instead of the deprecated398 V0 protocol.379 Mes remerciements vont tout particulièrement au professeur Joe Hellerstein 380 (<ulink url="http://db.cs.berkeley.edu/~jmh/"></ulink>) pour avoir élucier 381 l'idée centrale de GiST (<ulink 382 url="http://gist.cs.berkeley.edu/"></ulink>), et à son ancien étudiant, 383 Andy Dong 384 (<ulink url="http://best.me.berkeley.edu/~adong/"></ulink>), pour son 385 exemple. Mes remerciements aussi aux 386 développeurs de PostgreSQL pour m'avoir permis de créer mon propre monde 387 et de pouvoir y vivre sans pertubation. Argonne Lab et le département 388 américain de l'énergie ont aussi toute ma gratitude pour les années de 389 support dans ma recherche sur les bases de données. 390 </para> 391 392 <para> 393 Des modifications mineures ont été effectuées sur ce modul par Bruno Wolff 394 III <email>bruno@wolff.to</email> en août/septembre 2002. Elles incluent 395 la modification de la précision (de simple à double) et l'ajout de 396 quelques nouvelles fonctions. 397 </para> 398 399 <para> 400 Des mises à jour supplémentaires ont été réalisées par Joshua Reich 401 <email>josh@root.net</email> en juillet 2006. Elles concernent 402 <literal>cube(float8[], float8[])</literal> et le nettoyage du code pour 403 utiliser le protocole d'appel V à la place de la forme V0 maintenant 404 obsolète. 399 405 </para> 400 406 </sect2> traduc/trunk/manuel/ltree.xml
r874 r878 9 9 10 10 <para> 11 This module implements a data type <type>ltree</type> for representing12 labels of data stored in a hierarchical tree-like structure.13 Extensive facilities for searching through label trees are provided.11 Ce module implémente le type de données <type>ltree</type> pour représenter 12 des labels de données stockés dans une structure hiérarchique de type arbre. 13 Des fonctionnalités étendues de recherche sont fournies. 14 14 </para> 15 15 16 16 <sect2> 17 <title>Definitions</title> 18 19 <para> 20 A <firstterm>label</firstterm> is a sequence of alphanumeric characters 21 and underscores (for example, in C locale the characters 22 <literal>A-Za-z0-9_</literal> are allowed). Labels must be less than 256 bytes 23 long. 24 </para> 25 26 <para> 27 Examples: <literal>42</literal>, <literal>Personal_Services</literal> 28 </para> 29 30 <para> 31 A <firstterm>label path</firstterm> is a sequence of zero or more 32 labels separated by dots, for example <literal>L1.L2.L3</literal>, representing 33 a path from the root of a hierarchical tree to a particular node. The 34 length of a label path must be less than 65Kb, but keeping it under 2Kb is 35 preferable. In practice this is not a major limitation; for example, 36 the longest label path in the DMOZ catalogue (<ulink 37 url="http://www.dmoz.org"></ulink>) is about 240 bytes. 38 </para> 39 40 <para> 41 Example: <literal>Top.Countries.Europe.Russia</literal> 42 </para> 43 44 <para> 45 The <filename>ltree</filename> module provides several datatypes: 17 <title>Définitions</title> 18 19 <para> 20 Un <firstterm>label</firstterm> est une séquence de caractères 21 alphanumériques et de tirets bas (par exemple, dans la locale C, les 22 caractères <literal>A-Za-z0-9_</literal> sont autorisés). La longueur d'un 23 label est limité par 256 octets. 24 </para> 25 26 <para> 27 Exemples : <literal>42</literal>, <literal>Personal_Services</literal> 28 </para> 29 30 <para> 31 Le <firstterm>chemin de label</firstterm> est une séquence de zéro 32 ou plusieurs labels séparés par des points, par exemple 33 <literal>L1.L2.L3</literal>, ce qui représente le chemin de la racine 34 jusqu'à un nœud particulier. La longueur d'un chemin 35 est limité à 65 Ko, mais une longueur inférieure ou égale à 2 Ko 36 est préférable. Nous considérons qu'il ne s'agit pas d'une limitation 37 stricte. Par exemple, lataille maximum d'un chemin de label dans le 38 <ulink url="http://www.dmoz.org">catalogue DMOZ</ulink> fait environ 240 39 octets ! 40 </para> 41 42 <para> 43 Exemple : <literal>Top.Countries.Europe.Russia</literal> 44 </para> 45 46 <para> 47 Le module <filename>ltree</filename> fournit plusieurs types de 48 données : 46 49 </para> 47 50 … … 49 52 <listitem> 50 53 <para> 51 <type>ltree</type> sto res a label path.54 <type>ltree</type> stocke un chemin de label. 52 55 </para> 53 56 </listitem> … … 55 58 <listitem> 56 59 <para> 57 <type>lquery</type> represents a regular-expression-like pattern 58 for matching <type>ltree</type> values. A simple word matches that 59 label within a path. A star symbol (<literal>*</literal>) matches zero 60 or more labels. For example: 60 <type>lquery</type> représente un type d'expression rationnelle du chemin 61 pour la correspondance de valeurs de type <type>ltree</type>. Un mot 62 simple établit une correspondance avec ce label dans un chemin. Le 63 caractère joker (<literal>*</literal>) est utilisé pour spécifier tout 64 nombre de labels (niveaux). Par exemple : 61 65 <programlisting> 62 foo <lineannotation>Match the exact label path <literal>foo</literal></lineannotation> 63 *.foo.* <lineannotation>Match any label path containing the label <literal>foo</literal></lineannotation> 64 *.foo <lineannotation>Match any label path whose last label is <literal>foo</literal></lineannotation> 66 foo <lineannotation>Correspond au chemin exact <literal>foo</literal></lineannotation> 67 *.foo.* <lineannotation>Correspond à tout chemin contenant le label <literal>foo</literal></lineannotation> 68 *.foo <lineannotation>Correspond à tout chemin dont le dernier label est 69 <literal>foo</literal></lineannotation> 65 70 </programlisting> 66 71 </para> 67 72 68 73 <para> 69 Star symbols can also be quantified to restrict how many labels70 they can match:74 Les caractères joker peuvent être quantifiés pour restreindre le nombre 75 de labels de la correspondance : 71 76 <programlisting> 72 *{<replaceable>n</replaceable>} <lineannotation> Match exactly<replaceable>n</replaceable> labels</lineannotation>73 *{<replaceable>n</replaceable>,} <lineannotation> Match at least<replaceable>n</replaceable> labels</lineannotation>74 *{<replaceable>n</replaceable>,<replaceable>m</replaceable>} <lineannotation> Match at least <replaceable>n</replaceable> but not more than <replaceable>m</replaceable> labels</lineannotation>75 *{,<replaceable>m</replaceable>} <lineannotation> Match at most <replaceable>m</replaceable> labels — same as</lineannotation> *{0,<replaceable>m</replaceable>}77 *{<replaceable>n</replaceable>} <lineannotation>Correspond à exactement <replaceable>n</replaceable> labels</lineannotation> 78 *{<replaceable>n</replaceable>,} <lineannotation>Correspond à au moins <replaceable>n</replaceable> labels</lineannotation> 79 *{<replaceable>n</replaceable>,<replaceable>m</replaceable>} <lineannotation>Correspond à au moins <replaceable>n</replaceable> labels mais à pas plus de <replaceable>m</replaceable></lineannotation> 80 *{,<replaceable>m</replaceable>} <lineannotation>Correspond à au plus <replaceable>m</replaceable> labels — identique à</lineannotation> *{0,<replaceable>m</replaceable>} 76 81 </programlisting> 77 82 </para> traduc/trunk/manuel/pgbench.xml
r874 r878 9 9 10 10 <para> 11 <application>pgbench</application> is a simple program for running benchmark 12 tests on <productname>PostgreSQL</productname>. It runs the same sequence of SQL 13 commands over and over, possibly in multiple concurrent database sessions, 14 and then calculates the average transaction rate (transactions per second). 15 By default, <application>pgbench</application> tests a scenario that is 16 loosely based on TPC-B, involving five <command>SELECT</command>, 17 <command>UPDATE</command>, and <command>INSERT</command> commands per transaction. 18 However, it is easy to test other cases by writing your own transaction 19 script files. 11 <application>pgbench</application> est un programme simple qui exécute un 12 test de performances (appelé <foreignphrase>benchmark</foreignphrase> en 13 anglais) sur <productname>PostgreSQL</productname>.Il exéxute la même 14 séquence de commandes SQL de nombreuses fois, si possible dans plusieurs 15 sessions en prarallèle, puis calcule le taux de transaction moyen 16 (transactions par seconde). Par défaut, <application>pgbench</application> 17 teste un scénario qui est vaguement basé sur TPC-B, impliquant cinq 18 <command>SELECT</command>, <command>UPDATE</command> et 19 <command>INSERT</command> par transaction. Néanmoins il est facile de tester 20 d'autres cas en écrivant vos propres fichiers de transaction. 20 21 </para> 21 22 22 23 <para> 23 Typical output from pgbench looks like:24 Voici un exemple d'affichage de pgbench : 24 25 25 26 <programlisting> … … 33 34 </programlisting> 34 35 35 The first four lines just report some of the most important parameter 36 settings. The next line reports the number of transactions completed 37 and intended (the latter being just the product of number of clients 38 and number of transactions); these will be equal unless the run 39 failed before completion. The last two lines report the TPS rate, 40 figured with and without counting the time to start database sessions. 36 Les quatre premières lignes indiquent simplement certains des paramètres 37 les plus importants. La ligne suivant rapporte le nombre de transactions 38 terminées et souhaitées (le dernier étant juste le produit du nombre 39 de clients avec le nombre de transactions) ; ils doivent être égaux 40 sauf si un échec est arrivé avant la fin. Les deux dernières lignes 41 précisent le taux de transactions, avec et sans le temps de lancement 42 de la session. 41 43 </para> 42 44 43 45 <sect2> 44 <title> Overview</title>45 46 <para> 47 The default TPC-B-like transaction test requires specific tables to be48 set up beforehand. <application>pgbench</application> should be invoked with49 the <literal>-i</literal> (initialize) option to create and populate these50 tables. (When you are testing a custom script, you don't need this51 step, but will instead need to do whatever setup your test needs.)52 Initialization looks like:46 <title>Aperçu</title> 47 48 <para> 49 Le test de transaction par défaut, ressemblant à TPC-B, nécessite des tables 50 particulières qu'il faut créer. <application>pgbench</application> doit 51 être appelé avec l'option <literal>-i</literal> (initialisation) pour les 52 créer et les peupler. (Quand vous testez un script personnalisé, vous n'avez 53 pas besoin de cette étape, mais vous aurez besoin de configurer la base 54 suivant vos tests.) L'initialisation ressemble à ceci : 53 55 54 56 <programlisting> 55 pgbench -i <optional> <replaceable> other-options</replaceable> </optional> <replaceable>dbname</replaceable>57 pgbench -i <optional> <replaceable>autres-options</replaceable> </optional> <replaceable>nom_base</replaceable> 56 58 </programlisting> 57 59 58 where <replaceable>dbname</replaceable> is the name of the already-created 59 database to test in. (You may also need <literal>-h</literal>, 60 <literal>-p</literal>, and/or <literal>-U</literal> options to specify how to 61 connect to the database server.) 60 où <replaceable>dbname</replaceable> est le nom d'une base de données déjà 61 créée et à utiliser pour les tests. (Vous pourriez aussi avoir besoin des 62 options <literal>-h</literal>, <literal>-p</literal>, et/ou 63 <literal>-U</literal> pour spécifier la façon de se connecter au serveur 64 de bases de données.) 62 65 </para> 63 66 64 67 <caution> 65 68 <para> 66 <literal>pgbench -i</literal> creates four tables <structname>accounts</structname>, 67 <structname>branches</structname>, <structname>history</structname>, and 68 <structname>tellers</structname>, destroying any existing tables of these names. 69 Be very careful to use another database if you have tables having these 70 names! 69 <literal>pgbench -i</literal> crée quatre tables : <structname>accounts</structname>, 70 <structname>branches</structname>, <structname>history</structname> et 71 <structname>tellers</structname>, détruisant toutes tables existantes de 72 ce nom. Faites donc attention si vous possédez des tables de même nom ! 71 73 </para> 72 74 </caution> 73 75 74 76 <para> 75 A t the default <quote>scale factor</quote> of 1, the tables initially76 contain this many rows:77 Avec un <quote>facteur d'échelle</quote> de 1, les tables contiennent 78 initialement ce nombre de lignes : 77 79 </para> 78 80 <programlisting> 79 table # of rows80 ------------------------- 81 table # de lignes 82 --------------------------- 81 83 branches 1 82 84 tellers 10 … … 85 87 </programlisting> 86 88 <para> 87 You can (and, for most purposes, probably should) increase the number 88 of rows by using the <literal>-s</literal> (scale factor) option. The 89 <literal>-F</literal> (fillfactor) option might also be used at this point. 90 </para> 91 92 <para> 93 Once you have done the necessary setup, you can run your benchmark 94 with a command that doesn't include <literal>-i</literal>, that is 89 Vous pouvez augmenter le nombre de lignes en utilisant l'option 90 <literal>-s</literal> (facteur d'échelle). L'option 91 <literal>-F</literal> (facteur de remplissage) peut aussi être utilisée 92 à ce moment. 93 </para> 94 95 <para> 96 Une fois que vous avez exécuté la configuration, vous pouvez lancer votre 97 test de performance avec une commande qui n'inclut pas l'option 98 <literal>-i</literal>, c'est-à-dire : 95 99 96 100 <programlisting> 97 pgbench <optional> <replaceable>options</replaceable> </optional> <replaceable> dbname</replaceable>101 pgbench <optional> <replaceable>options</replaceable> </optional> <replaceable>nom_base</replaceable> 98 102 </programlisting> 99 103 100 In nearly all cases, you'll need some options to make a useful test. 101 The most important options are <literal>-c</literal> (number of clients), 102 <literal>-t</literal> (number of transactions), and <literal>-f</literal> (specify 103 a custom script file). See below for a full list. 104 </para> 105 106 <para> 107 <xref linkend="pgbench-init-options"/> shows options that are used 108 during database initialization, while 109 <xref linkend="pgbench-run-options"/> shows options that are used 110 while running benchmarks, and 111 <xref linkend="pgbench-common-options"/> shows options that are useful 112 in both cases. 104 Dans la plupart des cas, vous aurez besoin de quelques options pour que 105 ce test soit réellement intéressant. Les options les plus importantes 106 sont <literal>-c</literal> (nombre de clients), <literal>-t</literal> 107 (nombre de transactions) et <literal>-f</literal> (pour spécifier un script 108 personnalisé). Voir ci-dessous pour une liste complète. 109 </para> 110 111 <para> 112 <xref linkend="pgbench-init-options"/> affiche les options qui sont 113 utiles lors de l'initialisation de la base de données, alors que 114 <xref linkend="pgbench-run-options"/> affiche celles qui sont utiles 115 lors de l'exécution des tests de performance et 116 <xref linkend="pgbench-common-options"/> affiches les options utiles dans 117 les deux cas. 113 118 </para> 114 119 115 120 <table id="pgbench-init-options"> 116 <title> <application>pgbench</application> initialization options</title>121 <title>Options d'initialisation de <application>pgbench</application></title> 117 122 <tgroup cols="2"> 118 123 <thead> … … 127 132 <entry><literal>-i</literal></entry> 128 133 <entry> 129 Requi red to invoke initialization mode.130 </entry> 131 </row> 132 <row> 133 <entry><literal>-s</literal> <replaceable> scale_factor</replaceable></entry>134 <entry> 135 Multipl y the number of rows generated by the scale factor.136 For example, <literal>-s 100</literal> will imply 10,000,000 rows137 in the <structname>accounts</structname> table. Default is1.138 </entry> 139 </row> 140 <row> 141 <entry><literal>-F</literal> <replaceable>f illfactor</replaceable></entry>142 <entry> 143 Cr eate the <structname>accounts</structname>, <structname>tellers</structname> and144 <structname>branches</structname> tables with the given fillfactor.145 Default is100.134 Requis pour le mode initialisation. 135 </entry> 136 </row> 137 <row> 138 <entry><literal>-s</literal> <replaceable>facteur_echelle</replaceable></entry> 139 <entry> 140 Multiplie le nombre de lignes générées par le facteur d'échelle. Par 141 exemple, <literal>-s 100</literal> ajoute 10 millions de lignes dans 142 la table <structname>accounts</structname>. La valeur par défaut est 1. 143 </entry> 144 </row> 145 <row> 146 <entry><literal>-F</literal> <replaceable>fecteur_remplissage</replaceable></entry> 147 <entry> 148 Crée les tables <structname>accounts</structname>, <structname>tellers</structname> et 149 <structname>branches</structname> avec le facteur de remplissage 150 indiqué. La valeur par défaut est 100. 146 151 </entry> 147 152 </row> … … 151 156 152 157 <table id="pgbench-run-options"> 153 <title> <application>pgbench</application> benchmarking options</title>158 <title>Options pour les tests de <application>pgbench</application></title> 154 159 <tgroup cols="2"> 155 160 <thead> … … 164 169 <entry><literal>-c</literal> <replaceable>clients</replaceable></entry> 165 170 <entry> 166 N umber of clients simulated, that is, number of concurrent database167 sessions. Default is1.171 Nombre de clients simultanés, autrement dit le nombre de sessions en 172 parallèle. Par défaut, 1. 168 173 </entry> 169 174 </row> … … 171 176 <entry><literal>-t</literal> <replaceable>transactions</replaceable></entry> 172 177 <entry> 173 N umber of transactions each client runs. Default is10.178 Nombre de transactions exécutées par chaque client. Par défaut, 10. 174 179 </entry> 175 180 </row> … … 177 182 <entry><literal>-N</literal></entry> 178 183 <entry> 179 Do not update <structname>tellers</structname> and <structname>branches</structname>. 180 This will avoid update contention on these tables, but 181 it makes the test case even less like TPC-B. 184 Ne met pas à jour les tables <structname>tellers</structname> et 185 <structname>branches</structname>. Ceci évitera les contentions des 186 mises à jour sur ces tables mais du coup pgbench ne supporte pas les 187 transactions du style TPC-B. 182 188 </entry> 183 189 </row> … … 185 191 <entry><literal>-S</literal></entry> 186 192 <entry> 187 Perform select-only transactions instead of TPC-B-like test. 188 </entry> 189 </row> 190 <row> 191 <entry><literal>-f</literal> <replaceable>filename</replaceable></entry> 192 <entry> 193 Read transaction script from <replaceable>filename</replaceable>. 194 See below for details. 195 <literal>-N</literal>, <literal>-S</literal>, and <literal>-f</literal> 196 are mutually exclusive. 193 Réalise uniquement des transactions de sélection au lieu du TPC-B. 194 </entry> 195 </row> 196 <row> 197 <entry><literal>-f</literal> <replaceable>nom_fichier</replaceable></entry> 198 <entry> 199 Lit le script de transaction à partir de 200 <replaceable>nom_fichier</replaceable>. Des explications 201 détaillées apparaîtront plus tard. 202 <literal>-N</literal>, <literal>-S</literal> et <literal>-f</literal> 203 ne sont pas utilisables ensemble. 197 204 </entry> 198 205 </row> … … 200 207 <entry><literal>-n</literal></entry> 201 208 <entry> 202 No vacuuming is performed before running the test. 203 This option is <emphasis>necessary</emphasis> 204 if you are running a custom test scenario that does not include 205 the standard tables <structname>accounts</structname>, 206

