PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Re : Général » Afficher le temps d'exécution d'une requête » 07/09/2010 13:50:19

Bah j'ai demandé partout, histoire d'avoir plus de chances de réponse x) Mais pour le moment toujours rien hmm

#2 Re : Général » Afficher le temps d'exécution d'une requête » 07/09/2010 11:22:12

Le \timing me convient parfaitement, c'est le format sous SQLplus que je souhaite changer.

#3 Re : Général » Afficher le temps d'exécution d'une requête » 07/09/2010 11:09:30

Sous SQLPlus (sur ma base oracle), j'utilise "SET timing ON" afin d'obtenir plus ou moins la même chose que \timing sous postgres. Le résultat s'affiche sous la forme HH:MI:SS.FF (heures:minutes:secondes.fractionnal_second) avec une précision du 100ème de seconde.

Je souhaiterais, afin de pouvoir voir quelque chose, obtenir une précision en FF6 (6 chiffres après la virgule) et non FF2. D'après ce que j'ai lu on peut préciser FF1 à FF9, mais je n'arrive pas à trouver comment faire pour le cas du timing : dans un appel à une fonction de transformation ou d'affichage on peut préciser le format directement en argument, ici, on ne peut pas.

Quelqu'un sait-il comment régler ce format pour l'affichage du "timing" ?

#4 Re : Général » Afficher le temps d'exécution d'une requête » 25/08/2010 11:35:00

Merci bien !

J'utilise explain analyze de temps en temps, mais comme cela reste un explain, j'ai supposé que c'était également une estimation de chaque étape et non une mesure du temps mis effectivement par la requête.

#5 Général » Afficher le temps d'exécution d'une requête » 25/08/2010 11:24:36

Tinaby
Réponses : 10

Bonjour,

je voulais savoir s'il était possible d'afficher le temps effectif d'exécution d'une requête (a priori, EXPLAIN se contente d'une approximation en fonction des données qu'il possède concernant la base). Comme il y a de fortes chances que ce ne soit pas le cas directement dans psql , existe-t-il un utilitaire ?

Merci !

#6 Re : Migration » [Oracle -> Postgres]Equivalent "DEFINE" » 20/08/2010 10:16:30

Allez, une troisième pour la route.

Y a-t-il un équivalent à "SPOOL" (écriture des résultats de la requête dans un fichier) ? Je n'ai rien vu qui ressemble en parcourant les titres de la doc et une recherche n'a rien donné du tout cette fois :'(

#7 Re : Migration » [Oracle -> Postgres]Equivalent "DEFINE" » 19/08/2010 15:50:33

Ok, c'est bien ce qu'il m'avait semblé. Merci beaucoup !

#8 Re : Migration » [Oracle -> Postgres]Equivalent "DEFINE" » 19/08/2010 15:13:38

Bonjour,

toujours dans le même esprit (j'ai préféré ne pas refaire un topic), y a-t-il un équivalent à "WHENEVER" ?

Par exemple : "WHENEVER SQLERROR CONTINUE;" ou "WHENEVER SQLERROR EXIT SQL.SQLCODE;". J'ai trouvé dans la doc encore une fois du SQL embarqué, mais pas de fonctionnalité directe au niveau de psql.

J'ai cru comprendre que le comportement de base était celui de l'exemple que je viens de cité et qu'on pouvait utiliser "ON_ERROR_STOP" ou "ON_ERROR_ROLLBACK" pour le modifier, mais j'aimerais être sur que c'est bien de la même chose qu'il s'agit.

Cordialement,
Tinaby

#9 Re : Migration » [Oracle -> Postgres]Equivalent "DEFINE" » 17/08/2010 13:30:52

Je pense que ça corresponds bien avec ce que je cherchais.

Merci beaucoup !

#10 Migration » [Oracle -> Postgres]Equivalent "DEFINE" » 17/08/2010 11:18:02

Tinaby
Réponses : 7

Bonjour,

étant en cours de migration depuis une base Oracle, certains scripts possèdent des lignes telles que :

define var1 = value1;
define var2 = value2;
...


Y a-t-il un équivalent avec Postgres ? J'ai pu voir les EXEC SQL DEFINE pour le SQL embarqué, mais je n'ai aps vraiment l'impression que l'utilisation soit la même (dans les scripts, les define sont utilisés directement au niveau de la base et utilisés ensuite dans des requêtes, le tout n'étant pas embarqué pour deux sous et faisant partie de la création de la base).

Pour être précis, j'ai un fichier contenant un grand nombre de "define", le dit fichier étant "inclut" (en fait, exécuté via "START fichier_def.sql") au début de la plupart des scripts.

Merci d'avance.

#11 Re : PL/pgSQL » Syntax error sur "CURSOR" » 21/07/2010 14:46:21

A vot' service m'sieurs !

Avec le temps que vous passez sur le forum pour nous aider, c'est un minimum smile

#12 Re : PL/pgSQL » Syntax error sur "CURSOR" » 21/07/2010 14:28:20

Ah bah ui, mais forcément si y a des pièges dans la doc !

http://docs.postgresqlfr.org/8.4/plpgsql-porting.html

-->

CREATE OR REPLACE FUNCTION cs_update_referrer_type_proc() RETURNS void AS $func$
DECLARE
    CURSOR referrer_keys IS
        SELECT * FROM cs_referrer_keys
        ORDER BY try_order;
    func_body text;
    func_cmd text;
BEGIN


Ceci dit, ça marche, merci beaucoup ^^

#13 PL/pgSQL » Syntax error sur "CURSOR" » 21/07/2010 14:10:45

Tinaby
Réponses : 9

Bonjour,

j'ai un soucis au niveau d'une fonction. En effet, Postgres me renvoi une erreur de syntaxe au niveau de la déclaration du "cursor", et ce qu'il soit au début où à la fin de mon DECLARE (j'en déduis donc que c'est bien lui le problème).

A priori la seule chose notable que j'ai faite était d'ajouter le plpgsql aux languages de ma base. Ai-je oublié quelque chose ?

Voici la déclaration de la fonction et de ses variables :

CREATE OR REPLACE FUNCTION ma_fonction (var integer) RETURNS void AS $$
DECLARE
  var1 integer;
  var2 integer;
  var3 integer;
  CURSOR curseur IS
     SELECT champ FROM table
     ORDER BY champ;
BEGIN
...
END ma_fonction;
$$ language plpgsql

J'ai la même erreur avec :
CREATE OR REPLACE FUNCTION ma_fonction (var integer) RETURNS void AS $$
DECLARE
  CURSOR curseur IS
     SELECT champ FROM table
     ORDER BY champ;
  var1 integer;
  var2 integer;
  var3 integer;
BEGIN
...
END ma_fonction;
$$ language plpgsql

Je précise que la fonction est créée dans un script shell sous la forme :

psql ma_base << %
[plpgsql]
%

Merci d'avance !

#14 Re : Général » Drop tablespace » 05/07/2010 14:13:35

En effet. Je cherchais surtout un moyen d'éviter le message d'erreur disant qu'un tablespace est déjà existant. Ceci dit, de toutes façons, même avec le renvoi d'erreur, ça ne devrait pas gêner le fonctionnement derrière.

#15 Re : Général » Drop tablespace » 05/07/2010 11:54:39

D'accord,

Merci beaucoup !

Tant qu'à faire, même genre de question :

CREATE TABLESPACE mon_tablespace
DATAFILE '${file}' REUSE
DEFAULT STORAGE (PCTINCREASE 0)

Le REUSE possède-t-il un équivalent ?

#16 Général » Drop tablespace » 05/07/2010 11:25:06

Tinaby
Réponses : 4

Bonjour,

existe-il quoi que ce soit qui permette de faire un assimilé à "DROP TABLESPACE mon_tablespace WITH CONTENTS" ? Visiblement, d'après la doc il faut que le tablespace soit vide, et je n'ai pas trouvé d'équivalent. Il faut forcément faire un truc "maison" ?

Merci bien !

#17 Re : Installation » [Solaris] Version 8.4.4 » 29/06/2010 13:48:43

C'est bon, c'était effectivement un soucis de PATH lié à un reboot machine ! Faute de frappe en voulant le remettre correctement, étonnament, /usr/locla/lib, il trouvait pas... ^^"

Comme quoi, on voit de suite plus clair l'estomac plein !

Merci !

#18 Re : Installation » [Solaris] Version 8.4.4 » 29/06/2010 11:48:37

Le PATH est correct, de même que le LD_LIBRARY_PATH. J'ai déjà lu les notes bien sur smile

Je vais essayer de compiler avec le compilateur de Sun, mais ça me parait étrange, mes versions de Solaris, gcc et postgres étant a priori sans soucis.

Merci bien !

#19 Re : Installation » [Solaris] Version 8.4.4 » 29/06/2010 11:27:06

Effectivement , j'ai négligé ce "petit détail" ... (je penserais à me flageller, mais avant je vais attendre que ça marche ^^)

Petit détail qui rencontre cependant une erreur hmm

creating conversions ... FATAL : could not load library "/usr/local/pgsql/lib/ascii_and_mic.so": ld.so.1: postgres: fatal: libgcc_s.so.1: open failed : No such file or directory

Sachant que les trois bibliothèques citées sont bien présentes (j'ai du installer libgcc pour la compilation, et je viens de vérifier les deux autres sont présentes aussi).

En espérant que l'erreur viendra de quelque chose plus ... significatif que l'oublie d'une commande ! (encore que ... au moins ce serait rapide)

#20 Installation » [Solaris] Version 8.4.4 » 29/06/2010 10:56:37

Tinaby
Réponses : 6

Bonjour,

j'ai un soucis lors de l'installation de Postgres sous Solaris 10 (sparc). Premièrement, impossible de trouver un package (le "binaire" disponible sur le ftp est en fait un ensemble de dossiers, à copier coller ? celui disponible sur sunfreeware ne marche pas non plus, "no package were found ..." malgré le -D effectivement présent dans mon pkgadd).

J'ai donc décidé de l'installer à partir des sources.

./configure --> OK
make --> OK (=gmake)
make install --> OK

Lancement de postgres : Pas de fichier PG_VERSION. Me serais-je trompé de répertoire ? Je vérifie donc l'ensemble du répertoire /usr/local/pgsql ... pas de fichiers de conf (a part les samples, que je copie donc en les renommant dans le dossier data que j'ai créé (est-il censé exister à l'installation ?)), pas de PG_VERSION.

Je n'ai rien trouvé qui semble indiquer que ce soit normal, est-ce un problème lors de l'installation ? Dû aux sources ? A ma machine ?
Je précise que j'ai fait le configure sous l'utilisateur qui utilise la base, mais le make install en root (pour les droits de création des dossiers dans /usr/local), puis un chown -R sur le dossier pgsql.

Merci d'avance,

Tinaby

#21 Re : Général » Question ^^ » 01/06/2010 14:49:22

Je pense que ce que vous cherchez est l'invite de commande SQL. Comme l'a dit Marc, vous pouvez utiliser l'éditeur de pgadmin. Vous trouverez ça facilement dans un tuto (voire dans la doc) tongue (http://postgresql.developpez.com/cours/ devrait contenir ce que vous voulez)

Pied de page des forums

Propulsé par FluxBB