]> PostgreSQLFr - Technique - optimisation http://drupal.postgresql.fr/?q=taxonomy/term/12/0 Discussions techniques sur l'optimisation du serveur PostgreSQL et des requêtes SQL fr Optimisation de la mémoire sous PostgreSQL http://drupal.postgresql.fr/?q=node/1737 <p>Bonjour</p> <p>J’ai mis en place un extranet avec comme architecture un Tomcat 5 couplé à une base de données PostgreSQL 8.1 sur un serveur linux RedHat.</p> <p>J’aurais voulu savoir si il existait un moyen pour configurer PostgreSQL 8.1 afin d’exploiter efficacement la mémoire serveur au-delà de 1 GO ?</p> <p>Merci d'avance.<br /> Cordialement</p> Mon, 22 Sep 2008 14:06:48 +0200 Optimisation 13M de select http://drupal.postgresql.fr/?q=node/1709 <p>Bonjour,</p> <p>J'ai une base de données contenant 13M de lignes dans une table A<br /> Je dois les traités une par une puis insérer les resultats dans une autre table B<br /> Mais plus je fais de traitement plus la récupartion de la prochaine ligne a traiter est longue.</p> <p>Pour ca j'utilise un script python dont le principe est :</p> <p>TANT QUE "SELECT * FROM tableA WHERE traite=0 LIMIT 1" retourne une ligne :</p> Thu, 31 Jul 2008 15:15:04 +0200 Temps de réponse à une requête http://drupal.postgresql.fr/?q=node/1671 <p>Slt les gars,</p> <p>Dans le cadre de mon travail (la recherche), j'ai besoin de mesurer le temps d'exécution d'un bout de code dans lequel je fais appel au serveur de base de données. J’ai quelques questions à propos du temps de réponse d'un serveur de base de<br /> données.</p> <p>Soit Q une requête.</p> <p>1. est-ce qu'un serveur de base de données potgreSQL est capable de répondre avec le même temps de réponse à une même requête Q ?</p> Wed, 25 Jun 2008 00:00:16 +0200 Partitionnement sous postgresql sans utiliser l'héritage http://drupal.postgresql.fr/?q=node/1641 <p>Bonjour à tous,<br /> je souhaite partitionner une grosse table et diviser ainsi la table des indexes qui est devenue énorme aussi !<br /> réindex, analyze,vacuum, vacuum full, ... da la table a permis de réduire la taille des indexes, mais ce n'est pas suffusant, d'où l'idée de partitionner la table en fonction d'un critére, exemple (refernce fournisseur!) comme ça pour chaque fournisseur, j'ai la liste des produits.</p> Fri, 09 May 2008 11:24:05 +0200 Index http://drupal.postgresql.fr/?q=node/1631 <p>bonjour,</p> <p>J'ai 2 tables : table1 et table2. chacune a 40 000 lignes. il y a 4 champs sur chacune des 2 tables.</p> <p>table1<br /> id_tab1, nom_tab1, date_tab1, desc_tab1</p> <p>table2<br /> id_tab2, detail_tab2, encoredudetail_tab2, id_tab1</p> <p>N'étant pas le concepteur des 2 tables, je ne peux qu'ajouter des index (c'est déjà pas mal !!). Il n'y a pas de clé primaire, ni de clé étrangère.<br /> La raison est que les données arrive en brut dans les 2 tables et que les doublons nous interressent.</p> Fri, 25 Apr 2008 10:53:34 +0200 [Résolu] Vues > Changement de la requete http://drupal.postgresql.fr/?q=node/1615 <p>Bonjour,<br /> Je travaille en Postgres 8.2.7 sur Ubuntu<br /> Si je fais une vue du genre :</p> <p>SELECT DISTINCT table1.col1, table1.col2, table1.col3, table1.col4<br /> FROM<br /> matable1 table1,<br /> matable2 table2<br /> where<br /> table1.champs = table2.champs</p> <p>Cette requête seule prend 10 secondes.</p> <p>Postgres modifie ma requête et ajoute en fin de requête un order by de chaque champs du select.</p> <p>Du coup, la requête passe à plus d'une minutes.</p> Fri, 18 Apr 2008 09:27:56 +0200 Optimisation de requetes http://drupal.postgresql.fr/?q=node/1613 <p>Bonjour,</p> <p>Je voudrai savoir laquelle des deux requetes suivantes est plus optimales :</p> <p>RQ1 :<br /> SELECT C1, C2<br /> FROM T1, (UneSousRequete) AS SR<br /> WHERE T1.id = SR.id<br /> SELECT C1, C2<br /> FROM T2, (UneSousRequete) AS SR<br /> WHERE T2.id = SR.id</p> <p>RQ2 :<br /> SELECT T.C1, T.C2<br /> FROM<br /> (SELECT id, C1, C2 FROM T1<br /> UNION<br /> SELECT id, C1, C2 FROM T2) AS T,<br /> (UneSousRequete) RS<br /> WHERE T.id = RS.id</p> Wed, 09 Apr 2008 16:18:12 +0200 Vacuum sur une grosse table http://drupal.postgresql.fr/?q=node/1607 <p>Bonjour,</p> <p>j'ai récuperé une grosse table de plusieurs Giga, mais j'ai un gros doute sur la réussite de son vacuum analyse.<br /> Il me renvoie:</p> <p>INFO: vacuuming "dba.multi_resultat"<br /> INFO: analyzing "dba.multi_resultat"<br /> INFO: "multi_resultat": scanned 3000 of 387589 pages, containing 214998 live rows and 0 dead rows; 3000 rows in sample, 27776953 estimated total rows</p> <p>Durée totale d'exécution de la requête :445230 ms.</p> Thu, 03 Apr 2008 15:35:32 +0200 clé en double dans une table postgres lors de la restauration d'une base ou une table http://drupal.postgresql.fr/?q=node/1575 <p>bonjour,<br /> je reçoie l'erreur de clé en double lors de la restauration d' une table postgres:<br /> "<br /> C:\Program Files\PostgreSQL\8.2\bin\pg_restore.exe -i -h localhost -p 5432 -U postgres -d optimaint -a -t util_cfs -v "D:\bb_arborescence\Département Informatique\Développement\users.backup"<br /> pg_restore: connexion à la base de données pour la restauration<br /> pg_restore: restauration des données de la table « util_cfs »</p> Thu, 28 Feb 2008 14:31:12 +0100 Explosion de performance http://drupal.postgresql.fr/?q=node/1560 <p>Bonjour,</p> <p>Je développe un logiciel de paie PHP/PostGreSQL. J'ai notamment un calcul de balance mensuelle des salaires. C'est un script assez lourd avec de nombreuses requêtes qui s'effectuent essentiellement sur 2 tables :</p> <p>- la table BULLETIN contenant les données principales des bulletins<br /> - la table LIGNES_BULLETIN décrivant chaque ligne de chaque bulletin, rattachée à la table BULLETIN</p> Wed, 13 Feb 2008 17:27:59 +0100 Optimiseur : réécriture/simplification des requêtes avant exécution ? http://drupal.postgresql.fr/?q=node/1540 <p>Bonjour</p> <p>J'utilise Postgresql depuis peu. J'ai constaté sur ma base récemment installée un problème : l'optimiseur ne sait apparemment pas, quand c'est possible, simplifier une requête et la réécrire avant de l'exécuter. Exemple simple et reproductible :</p> <p>ma_bdd=# create table test (n numeric);<br /> CREATE<br /> ma_bdd=# insert into test values (1); --> lancé 10 fois<br /> INSERT<br /> ma_bdd=# insert into test values (0); --> lancé 10 fois</p> Thu, 31 Jan 2008 13:58:10 +0100 Reqête très lente http://drupal.postgresql.fr/?q=node/1476 <p>Bonjour, je débute en postresql et j'ai un problème au niveau d'un requête sur une table.<br /> En effet, lorsque je fais un :<br /> <p class="code"> select count(*) from matable; </p> => le résultat s'affiche au bout de 15secondes. (Cette table contient 7500 lignes)</p> <p>Si je fais la même requête sur des tables similaires , le résultat est instantané.</p> <p>J'ai essayé de faire un 'vacuum verbose analyse matable;' sans résultat !</p> <p>voici le résultat d'un \dt</p> <p class="code"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Table&nbsp;"public.stat"<br /> &nbsp;&nbsp;&nbsp;Colonne&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;Type&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Modifications<br /> -------------+----------+--------------------------------------------<br /> &nbsp;stat_num&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;integer&nbsp;&nbsp;|&nbsp;not&nbsp;null&nbsp;default&nbsp;nextval('stat_seq'::text)<br /> &nbsp;stat_unum&nbsp;&nbsp;&nbsp;|&nbsp;integer&nbsp;&nbsp;|<br /> &nbsp;stat_dnum&nbsp;&nbsp;&nbsp;|&nbsp;integer&nbsp;&nbsp;|<br /> &nbsp;stat_dsnum&nbsp;&nbsp;|&nbsp;integer&nbsp;&nbsp;|<br /> &nbsp;stat_date&nbsp;&nbsp;&nbsp;|&nbsp;date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br /> &nbsp;stat_dofw&nbsp;&nbsp;&nbsp;|&nbsp;smallint&nbsp;|<br /> &nbsp;stat_ftnum&nbsp;&nbsp;|&nbsp;integer&nbsp;&nbsp;|<br /> &nbsp;stat_srvnum&nbsp;|&nbsp;integer&nbsp;&nbsp;|<br /> Index:&nbsp;stat_pkey&nbsp;primary&nbsp;key&nbsp;btree&nbsp;(stat_num),<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stat_i_dnum&nbsp;btree&nbsp;(stat_dnum),<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stat_i_dsnum&nbsp;btree&nbsp;(stat_dsnum),<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stat_i_unum&nbsp;btree&nbsp;(stat_unum) </p> Fri, 30 Nov 2007 20:51:01 +0100 Transaction de 1h30, parfois.... http://drupal.postgresql.fr/?q=node/1465 <p>Bonjour!</p> <p>Je rencontre un gros problème de performances.<br /> Mon application reçoit des données régulièrement, et après traîtmenet, j'insère les informations pertinentes dans la base de données. ; dans la majorité des cas, tout se passe bien et la transaction globale dure moins d'une seconde. Cependant, de temps à autre (une fois sur vingt ?), la transaction met un temps extraordinairement long pour s'achever (avec succès!) ; extraordinairement long signifie en l'occurence environ 1h30 (une heure et trente minutes!!!) mesuré directement dans les logs de postgresql (duration).</p> Fri, 16 Nov 2007 19:04:05 +0100 TEXT ou Varchar http://drupal.postgresql.fr/?q=node/1456 <p>Bonjour,</p> <p>J'ai posé la question par email. Il est préférable de partager cette question avec tout le monde.</p> <p>Nous developpons un projet en Php avec Postgres.<br /> Nous devons enregistrer plusieurs milliers de lignes par jour sur 100 colonnes environs. Les données proviennent de fichiers bruts CSV. Nous faisons ensuite plusieurs traitements qui réduisent le nombre de lignes et éventuellement le nombre de colonnes. Les colonnes ne dépassent pas les 200 caractères mais sont très variables.</p> Tue, 13 Nov 2007 16:14:31 +0100 Optimisation requête : sélection des n premiers éléments de chaque catégorie http://drupal.postgresql.fr/?q=node/1453 <p>Bonjour,</p> <p>Je souhaite savoir s'il existe une méthode "optimale" pour récupérer les n premières lignes de chaque catégorie d'un ensemble de données.</p> <p>Je m'explique. Imaginons le jeu de données suivant :</p> <p>CREATE TABLE ma_table<br /> (<br /> ID integer NOT NULL,<br /> ID_CATEGORIE integer,<br /> CONSTRAINT ma_table_pkey PRIMARY KEY (ID)<br /> )<br /> WITHOUT OIDS;<br /> INSERT INTO ma_table(ID, ID_CATEGORIE) VALUES(1,1);</p> Mon, 12 Nov 2007 16:22:18 +0100