Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#26 Re : Général » Utilisation d'un outil graphique comme MySQL Workbench pour PostgreSQL » 09/05/2014 15:47:03
Bonjour,
PostgreSQL n'est pas n'importe quel type d'outil, les fonctionnalités proposées doivent êtres stables.
#27 Général » Utilisation d'un outil graphique comme MySQL Workbench pour PostgreSQL » 06/05/2014 10:21:20
- guk92
- Réponses : 17
Bonjour,
Je suis sur que tout comme moi, vous connaissez l'outil MySQL Workbench (lien: http://www.mysql.fr/products/workbench/), c'est un outil qui permet de modéliser ses tables et vues, et qui permet aussi d'effectuer des requêtes sur une base. Un outil fort sympa.
Je souhaiterais donc savoir si vous connaissez un équivalent de MySQL Workbench pour PostgreSQL qui soit :
* gratuit
* stable
* simple d'installation et d'utilisation
* permet à la fois de créer ses bases/tables/vues à partir du mode graphique, ou bien de faire du reverse engineering, c'est à dire récupérer les tables/vues d'une base existante pour les afficher en mode graphique.
* beau (facultatif)
J'ai bien sur effectué des recherches avant :
* http://www.developpez.net/forums/d92813 … ostgresql/
* https://wiki.postgresql.org/wiki/GUI_Da … sign_Tools
* http://wiki.postgresql.org/wiki/Communi … _GUI_Tools
Mais j'aimerais avoir votre avis, suite à ma forte déception suite à l'utilisation de PgModeler (lien: http://www.pgmodeler.com.br/ ). J'ai été très déçu par celui-ci, l'outil est simple d'utilusation, beau, mais buggé (mon fichier a été corrompu, je ne pouvais plus l'ouvrir, j'y ai passé plusieurs heures dessus !). Aussi d'après ce que je viens de voir, maintenant ils ne mettent à disposition que le code source, les binaires sont devenus payant.
PS: Je trouve cela dommage que pgAdmin III ne dispose pas de ce genre de fonctionnalité par défaut.
Cordialement,
#28 Re : Général » L'ordre des indexes a-t-il une importance ? (cas multi index) » 27/04/2014 23:53:11
Bonsoir, merci pour vos réponses gleu.
Pour la 3. , sur stackoverflow, j'ai lu :
The column with the least distinct values ought to be first and the column with the most distinct values last
Pour la 4. , notre formateur Oracle nous a dit que les index ne servaient à rien, si de temps en temps on n'effectuait pas la commande ANALYZE. Sur le coup, j'ai pensé que c'était l'équivalent d'un VACUUM PostgreSQL mais pour "nettoyer" l'index.
6. Lorsque je lis la doc, cela dit en gros que ANALYZE sert à choisir le meilleur algo de recherche (le terme "plan d'exécution" correspond mieux peut-être) ... mais je suppose que 90% du temps c'est du B-tree et hash ?
Pour la 5., en effet j'ai voulu dire "index implicite".
#29 Général » L'ordre des indexes a-t-il une importance ? (cas multi index) » 27/04/2014 18:56:42
- guk92
- Réponses : 5
Bonjour,
Mon formateur Oracle nous a dit que l'ordre des indexes ont une importance. Par exemple, si j'ai un index avec deux colonnes, et que la colonne n°1 de l'index n'est pas utilisé, alors l'index n'agira pas.
Je suis donc allé dans la doc PostgreSQL pour voir le comportement de celui-ci (chapitres 11.3 et 11.5) :
http://docs.postgresqlfr.org/9.2/indexe … olumn.html
http://docs.postgresqlfr.org/9.2/indexe … scans.html
Mais je ne suis pas sur d'avoir tout à fait compris si c'était bien équivalent.
Donc considérons que j'ai une table avec trois colonnes : a, b, et c.
Si je crée l'index mon_index(a, c) alors l'index agira dans les cas suivants :
SELECT * FROM ma_table WHERE a = 1;
SELECT * FROM ma_table WHERE a = 1 AND b = 1 AND c = 1;
SELECT * FROM ma_table WHERE a = 1 OR b = 1 OR c = 1;Mais pas dans ces cas là, parce que "a" n'est pas présent :
SELECT * FROM ma_table WHERE c = 1;
SELECT * FROM ma_table WHERE b = 1 AND c = 1;
SELECT * FROM ma_table WHERE b = 1 OR c = 1;1. Est-ce que c'est bien le cas ? (pour les 2 exemples cités au-dessus).
2. Si je souhaite utiliser parmi les 3 cas :
* le cas où "a" seul est appelé
* "a" et "c" sont appelés
* le cas où seul "c" est appelé
... alors je devrais créer 2 indexes : mon_index1(a, c) et mon_index2(c) ?
3. Considérons que les colonnes "a" et "c" sont utilisés dans la requête. Si la colonne "a" contient 10 valeurs distinctes, et "c" 10000 valeurs distinctes, alors il faut de préférence placer "a" en premier, et "c" en seconde position dans l'index ?
4. La commande ANALYZE permet de remettre les index à jour si je comprend bien. Dans un cas général, est-t-il conseillé d'utiliser une tâche planifiée, pour exécuter ANALYZE de temps en temps (traitement de nuit) ?
5. Lorsqu'on crée une FOREIGN KEY (cas de jointure), PostgreSQL ne crée pas de jointure implicite (contrairement aux PRIMARY KEY et UNIQUE). La documentation dit :
Since a DELETE of a row from the referenced table or an UPDATE of a referenced column will require a scan of the referencing table for rows matching the old value, it is often a good idea to index the referencing columns too. Because this is not always needed, and there are many choices available on how to index, declaration of a foreign key constraint does not automatically create an index on the referencing columns.
... je suppose qu'il est préférable pour moi de créer explicitement un INDEX sur les colonnes sur lesquels j'effectue des jointures ?
Je vous remercie par avance, cordialement ![]()
#30 Re : Général » Bug PostGreSQL : FULL OUTER JOIN » 25/04/2014 11:45:03
Bonjour,
A comparer 2 SGBDR gratuits, je dirais qu'il faudrait comparer PostgreSQL et SQL Server Express.
SQL Server Express ne dispose ni d'ETL (SSIS), ni d'outil de création de cube (SSAS), ni d'outil pour mettre en forme les rapports (SSRS), ni de l'outil de tâche planifié (SQL Server Agent) par défaut...
Ce sont certes des outils utiles, mais pas indispensable non plus (j'achète une voiture pour rouler, pas pour ses sièges en cuir), car il existe d'autres alternatives, parfois moins couteuse et aussi bien (pour la partie integration je pense à Talend, et reporting à Qlikview), ou bien même gratuit (du développement).
Pour la partie cube, je trouve que le cas s'applique peut-être bien pour les cas extrême où on a vraiment beaucoup de donnée (la traçabilité de tous les produits dans une usine de production par exemple), mais sinon ça reste quand même très marketing comme solution.
SQL Server compte 30 fois plus de code que PG ? Je ne savais pas que SQL Server était open source...
Le rapport nombre de ligne de code / vulnérabilité est certainement meilleure avec SQL Server (et encore heureux pour le prix que ça coute, faut un minimum). Le nombre de ligne de code ne veut pas tout dire, et si ça se trouve les chiffres inclus SSIS, SSAS, SSRS dedans (cf: on ne le sait pas, cqfd: n'est pas open source).
Je trouve le lien des bugs PostgreSQL cool, par contre dommage je n'arrive pas à trouver la même interface publique pour SQL Server (ne pas ternir l'image de marque est compréhensible pour une très grande entreprise). Ce qu'il faudrait voir c'est le temps moyen prit pour résoudre un bug.
Voici un article developpez intéressant sur la qualité du code open source / propriétaire :
http://www.developpez.net/forums/d14327 … ost7780066
Et rapport (voir page 8 pour la densité de défaut) : http://www.coverity.com/library/pdf/cov … report.pdf
Qu'en est-t-il de SQL Server ?
Mais pourquoi parle-t-on toujours de bug ? Le problème de base est lié à une limitation ![]()
#31 Re : Général » Bug PostGreSQL : FULL OUTER JOIN » 22/04/2014 21:10:25
Bonsoir,
Ce n'est pas comme s'il n'y avait pas de bug sous SQL Server.
Voici un topic qui détaille un problème majeur que j'ai rencontré avec SQL Server 2005 :
http://www.developpez.net/forums/d11183 … -bug-like/
Il ne s'agit même pas d'un FULL JOIN, mais du pauvre opérateur LIKE...
Je préfère de loin avoir un SGBDR gratuit qui m'avertit ne pas gérer une fonctionnalité, qu'un SGBDR payant qui me sort des conneries.
En ce qui concerne la bug list de SQL Server, on peut lire sur internet :
Microsoft doesn't really keep a public list of open bugs. The ones that are the most important (e.g. anything involving security) are kept private for obvious reasons - they actually aren't published until they are fixed (and even then they often remain private).
Source : http://dba.stackexchange.com/questions/ … er-sp4-cu4
#32 Général » [Optimisation] Sens de lecture des expressions » 22/04/2014 14:04:33
- guk92
- Réponses : 1
Bonjour,
Je souhaiterais exécuter une requête qui possède cette forme :
SELECT * FROM ma_table WHERE (expression_couteuse) AND colonne1 = 12 ;Mais je me demandais s'il ne vaudrait pas mieux faire cela plutôt :
SELECT * FROM ma_table WHERE colonne1 = 12 AND (expression_couteuse);Au niveau de la doc j'ai bien lu le tableau "Précédence des opérateurs" : http://docs.postgresql.fr/9.2/sql-synta … ence-table
Mais je voudrais en être sur. Est-ce que les 2 écriture sont équivalentes, ou faut-t-il privilégier le second ?
Cordialement, ![]()
#33 Re : Général » [RESOLU] Différences entre ROLE/USER/GROUP » 17/03/2014 10:40:00
Merci pour vos réponses Julien ![]()
Sujet Résolu.
#34 Général » [RESOLU] Différences entre ROLE/USER/GROUP » 17/03/2014 01:09:43
- guk92
- Réponses : 2
Bonsoir,
Je souhaiterais comprendre la différence entre un "CREATE ROLE", "CREATE USER", et "CREATE GROUP".
1. D'après la documentation PostgreSQL, ces trois instructions représentent la même chose (à moins que j'ai mal compris), et d'après le standard il faudrait de préférence utiliser la syntaxe "CREATE ROLE". Est-ce correct ?
2. Dans Oracle, on a la possibilité de créer un USER (compte pour se connecter à la base) et de créer des ROLE pour des droits (ce mot n'a peut-être pas la même signification que pour le ROLE de PostgreSQL). Il est donc possible de faire un "GRANT role1 TO user1". Mais avec PostgreSQL ce serait plutôt un "GRANT role1 TO role2". Est-ce correct ?
3. Existe-t-il d'autres notions pour créer des utilisateurs ou des groupes d'utilisateurs dans PostgreSQL ? Parce que j'ai l'impression qu'avec PostgreSQL, tout peut se faire avec "CREATE ROLE".
4. Dans les autres SGBDR, il existe plusieurs comptes d'administration par défaut (sys, system etc...), avec PostgreSQL il n'existe que le compte admin "postgres" n'est-ce pas ?
Je vous remercie par avance pour vos réponses, cordialement, ![]()
#35 Re : Général » ODBC PostgreSQL est instable » 29/01/2014 10:40:27
Bonjour gleu,
Mon fichier pg_hba.conf contient à la base (fichier par défaut avec installation) juste 2 instructions, qui sont :
host all all 127.0.0.1/32 md5
host all all ::1/128 md5 Le premier doit correspondre au localhost ipv4, le second au localhost ipv6.
Tout ce que j'ai fait de mon coté, c'est autoriser les connexions externes en ajoutant l'instruction suivante :
host all all 0.0.0.0/0 md5Et j'ai laissé l'instruction par défaut suivante dans le fichier postgresql.conf :
listen_addresses = '*' # what IP address(es) to listen on;Comme indiqué dans la doc ici : http://www.postgresql.org/docs/9.2/stat … -conf.html
Et aussi sur ce forum : http://stackoverflow.com/a/13139342
De plus, comme je l'ai déjà indiqué, j'arrive à me connecter à PostgreSQL, mais pas toujours ! D'où le titre de ce topic que j'ai créé : ODBC PostgreSQL est instable
Avant j'avais installé la version : psqlodbc_09_02_0100.zip, puis je suis passé à la dernière version : psqlodbc_09_03_0100.zip mais le problème persiste.
Pourriez-vous me dire d'où peut provenir le problème, et comment y remédier, s'il vous plait ?
Cordialement,
#36 Re : Général » ODBC PostgreSQL est instable » 28/01/2014 12:33:29
Bonjour Julien,
J'ai laissé le nombre de connexion max à 100 (la valeur par défaut dans le fichier postgresql.conf).
Seul 2 personnes utilisent régulièrement le SGBDR via ODBC (ce qui n'est pas beaucoup), par contre de nuit il y a des traitements en Java via JDBC (mais de ce coté-ci pas de problème).
Lorsque je regarde pg_activity_stat, je ne vois que 3 lignes qui représentent ma connexion postgres (je ne pense pas dépasser le nombre de connexion max).
Cordialement,
#37 Général » ODBC PostgreSQL est instable » 27/01/2014 11:31:42
- guk92
- Réponses : 5
Bonjour,
Cela fait plusieurs mois que je cherche une solution à mon problème de connexion client ODBC au serveur PostgreSQL 9.2
J'arrive à me connecter au serveur Postgres, mais pas toujours (1 jour sur 3).
Voici le message d'erreur qui s'affiche lorsqu'il y a une erreur. A gauche (très souvent), et à droite les pop-up qui peuvent s'afficher (un peu moins souvent) :
Les erreurs semblent explicite, pourtant je pense avoir configuré le fichier de configuration pg_hba.conf comme il le faut (ne contient que ces instructions) :
# TYPE DATABASE USER ADDRESS METHOD
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
# Pour ipv6
host all all ::1/128 md5 Ce problème est d'abord apparu avec un autre poste client de l'entreprise, maintenant elle apparait aussi chez moi. Il est possible que le problème vienne de la configuration des machines (postes client sous Windows 7). Autre remarque : En ce moment j'ai le problème, mais pas l'autre machine, donc je pense que le problème vient non pas du serveur, mais du connecteur ODBC installé sur les postes clients.
PS1: J'ai déjà ouvert 2 sujets sur ce problème :
http://forums.postgresql.fr/viewtopic.php?pid=18035
http://forums.postgresql.fr/viewtopic.php?pid=18652
PS2:
J'effectue aussi des connexions via JDBC (application Java), ce connecteur fonctionne parfaitement.
Cordialement,
#38 Général » Impossible de se connecter à PostgreSQL » 13/11/2013 14:46:02
- guk92
- Réponses : 0
Bonjour,
Je viens de me rendre compte que je n'arrive plus à accéder à mon serveur de production (sur le serveur de recette j'y arrive).
Et parfois, lorsque j'appuie plusieurs fois j'obtiens ce message :
J'ai essayé ... :
1 : J'ai redémarré mon poste client : le problème persiste.
2 : J'ai réinstallé ODBC sur mon poste client : le problème persiste.
3 : J'ai installé la dernière version de ODBC : le problème persiste.
4 : J'ai redémarré la machine serveur (restart windows) : le problème persiste.
Je ne sais plus quoi faire. D'habitude quand ce problème arrive (oui parce que ce problème surgit de façon aléatoire), il suffit que j'effectue l'une des étapes cités pour que ça refonctionne de nouveau, pourquoi PostgreSQL ODBC est aussi instable ? Ça donne juste envie de s'arracher les cheveux qui restent.
Cordialement,
#39 Re : Général » [RESOLU] Enregistrer toutes les actions liés aux comptes utilisateur » 25/10/2013 11:33:44
Bonjour,
C'est dommage qu'on ne puisse pas choisir son caractère de "séparation" pour le csvlog, heureusement que la commande COPY permet de définir le type de séparateur lors d'un import/export.
En tout cas je vous remercie pour toutes vos réponses. Je considère ce topic comme résolu et espère qu'il apportera des réponses aux personnes qui se posent les mêmes questions.
PS: Pas de question 11
, c'était juste une petite remarque. D'ailleurs j'aurais deux nouvelles remarques :
* Dans le dossier pg_log j'ai maintenant un fichier "postgresql-2013-10-25_000000.csv" et un fichier "postgresql-2013-10-25_000000.log", et pourtant j'ai bien défini "log_destination = 'csvlog'" et pas "log_destination = 'stderr, csvlog'". Le fichier d'extension ".log" reste vide donc pas de double enregistrement. Aussi, lors d'un redémarrage du serveur, un nouveau fichier ".log" est créé 3-4 secondes avant un nouveau fichier ".csv".
PostgreSQL version: 9.2
* J'ai testé "log_statement = 'ddl'" et "log_statement = 'mod'", rien à faire, cela n'enregistre pas les SELECT, il faut passer par "log_statement = 'all'". Dommage que l'option "dml" n'existe pas !
Cordialement,
#40 Re : Général » [RESOLU] Enregistrer toutes les actions liés aux comptes utilisateur » 24/10/2013 13:52:47
Bonjour,
Merci pour vos réponses gleu.
J'ai donc modifié le fichier postgresql.conf en indiquant les paramètres suivants :
log_destination = 'csvlog'
logging_collector = on # Celui-ci était déjà à ON
log_connections = on
log_line_prefix = '%t, %a, %u, %d, %r, %i, %e'
log_statement = 'all'La première chose que je remarque est que le fichier enregistre toutes les actions possibles, c'est très confus. D'après la documentation :
log_statement (enum)
Controls which SQL statements are logged. Valid values are none (off), ddl, mod, and all (all statements). ddl logs all data definition statements, such as CREATE, ALTER, and DROP statements. mod logs all ddl statements, plus data-modifying statements such as INSERT, UPDATE, DELETE, TRUNCATE, and COPY FROM. PREPARE, EXECUTE, and EXPLAIN ANALYZE statements are also logged if their contained command is of an appropriate type. For clients using extended query protocol, logging occurs when an Execute message is received, and values of the Bind parameters are included (with any embedded single-quote marks doubled).
9. Serait-t-il possible de le limiter aux requêtes de type SELECT + UPDATE + INSERT ? Si oui comment car je voudrais juste me limiter aux requêtes de type DML (Data Manipulation Language -> SELECT | INSERT | UPDATE | DELETE).
10. Le CSV généré a pour séparateur une virgule, comment préciser que je veux un "point-vigule" à la place d'une virgule ? (ce sera plus pratique pour ouvrir avec des outils comme Excel).
PS: J'ai remarqué que le paramètre log_line_prefix n'est pas pris en compte lorsqu'on choisit log_destination = 'csvlog', d'après la doc, par défaut avec csvlog :
CREATE TABLE postgres_log
(
log_time timestamp(3) with time zone,
user_name text,
database_name text,
process_id integer,
connection_from text,
session_id text,
session_line_num bigint,
command_tag text,
session_start_time timestamp with time zone,
virtual_transaction_id text,
transaction_id bigint,
error_severity text,
sql_state_code text,
message text,
detail text,
hint text,
internal_query text,
internal_query_pos integer,
context text,
query text,
query_pos integer,
location text,
application_name text,
PRIMARY KEY (session_id, session_line_num)
);Je vous remercie ![]()
#41 Re : Général » [RESOLU] Enregistrer toutes les actions liés aux comptes utilisateur » 23/10/2013 11:51:05
Merci pour les réponses gleu ![]()
3. Si stderr, csvlog, syslog, et eventlog sont tous des fichiers, est-ce que c'est juste la mise en forme du texte à l'intérieur du fichier qui change ? Quel serait votre préférence et pourquoi ?
4. Est-t-il possible de choisir plusieurs de ces formats comme ceci : log_destination = 'stderr, syslog, csvlog' ?
5. J'ai vu que le contenu du dossier pg_log contenait déjà des des fichiers d'extension .log, donc si je met juste log_destination = 'csvlog' aurais-je des fichiers avec le nom : postgresql-%Y-%m-%d_%H%M%S.csv ? Ou bien dois-je paramétrer l'attribut log_filename pour l'extension ? Oui parce que comment faire la différence entre stderr et csvlog s'ils ont tout les deux la même extension et le même nom de fichier (ce qui n'est pas possible) ?
6. Pensez-vous que pour ce que je souhaite faire ("enregistrer de façon continu les logs dans une table de la base"), mieux vaut passer par un fichier CSV (csvlog) puis charger dans une base de la table à partir d'une tâche planifié ?
7. Puis-je définir le log_line_prefix comme ceci : log_line_prefix = '%t, %a, %u, %d, %r, %i, %e' . Aussi lequel de ces lettre représente la date d'exécution et la durée de la requête ?
8. Comment faire pour mettre un sujet en statut "Résolu" dans le forum ?
PS: Je sais qu'il n'est pas bien d'avoir deux PosgtreSQL sur la même machine, mais c'est au cas où je n'aurais pas le choix (et c'est une "mini prod").
Je vous remercie ![]()
#42 Re : Général » Jointure avec date la plus petite et la plus proche » 22/10/2013 12:52:35
Tu calcules un taux, ou bien une simple différence entre table2.v_timestamp et table1.t_timestamp ?
S'il y a calcul du taux, qu'est-ce que le dénominateur ?
#43 Re : Général » [RESOLU] Enregistrer toutes les actions liés aux comptes utilisateur » 22/10/2013 11:54:10
Bonjour,
Je vous remercie pour votre réponse Arthurr. Ce que je souhaiterais, c'est enregistrer de façon continu les logs dans une table de la base.
Du coup j'aurais quelques questions :
1. J'ai vu qu'il existait plusieurs façon d'enregistrer le log (stderr, csvlog, syslog, and eventlog). Sauf qu'on ne dit pas exactement à quoi correspondent ces 4 types d'enregistrement dans la doc (même si on se doute bien que pour csvlog il va enregistrer dans un fichier au format CSV).
a. A quoi correspondent chacun de ces 4 types d'enregistrement ? Lesquels enregistrent sous forme de fichier, et d'autres directement dans la table d'une base ?
b. N'y a-t-il pas un moyen d'enregistrer le log dans une base à part comme "base_pg_des_logs" avec une table "table_des_logs" ? Si oui comment faire ?
2. Je suis conscient pour les ressources (perfs) que cela demande, mais ce qui m'inquiète c'est surtout l'enregistrement des logs de mes scripts d'automatisation journalière. Du coup est-t-il possible d'indiquer dans postgresql.conf le nom des comptes dont il ne faut pas enregistrer les logs ? (ex: le compte admin postgres).
a. Si oui, comment l'indiquer dans le postgresql.conf ?
b. Si non, est-t-il possible d'installer 2 SGBDR PostgreSQL sur la même machine ? (le premier aura pour but d'effectuer les traitements journaliers, le second récupère les résultats du premier serveur pour servir de consultation + enregistrement des logs utilisateurs).
Voici le contenu de mon postgresql.conf, partie "Error Reporting and Logging" (aucune modification apporté pour le moment):
#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------
# - Where to Log -
log_destination = 'stderr' # Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
# depending on platform. csvlog
# requires logging_collector to be on.
# This is used when logging to stderr:
logging_collector = on # Enable capturing of stderr and csvlog
# into log files. Required to be on for
# csvlogs.
# (change requires restart)
# These are only used if logging_collector is on:
#log_directory = 'pg_log' # directory where log files are written,
# can be absolute or relative to PGDATA
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
# can include strftime() escapes
#log_file_mode = 0600 # creation mode for log files,
# begin with 0 to use octal notation
#log_truncate_on_rotation = off # If on, an existing log file with the
# same name as the new log file will be
# truncated rather than appended to.
# But such truncation only occurs on
# time-driven rotation, not on restarts
# or size-driven rotation. Default is
# off, meaning append to existing files
# in all cases.
#log_rotation_age = 1d # Automatic rotation of logfiles will
# happen after that time. 0 disables.
#log_rotation_size = 10MB # Automatic rotation of logfiles will
# happen after that much log output.
# 0 disables.
# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'
# This is only relevant when logging to eventlog (win32):
#event_source = 'PostgreSQL'
# - When to Log -
#client_min_messages = notice # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# log
# notice
# warning
# error
#log_min_messages = warning # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic
#log_min_error_statement = error # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic (effectively off)
#log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements
# and their durations, > 0 logs only
# statements running at least this number
# of milliseconds
# - What to Log -
#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_error_verbosity = default # terse, default, or verbose messages
#log_hostname = off
log_line_prefix = '%t ' # special values:
# %a = application name
# %u = user name
# %d = database name
# %r = remote host and port
# %h = remote host
# %p = process ID
# %t = timestamp without milliseconds
# %m = timestamp with milliseconds
# %i = command tag
# %e = SQL state
# %c = session ID
# %l = session line number
# %s = session start timestamp
# %v = virtual transaction ID
# %x = transaction ID (0 if none)
# %q = stop here in non-session
# processes
# %% = '%'
# e.g. '<%u%%%d> '
#log_lock_waits = off # log lock waits >= deadlock_timeout
#log_statement = 'none' # none, ddl, mod, all
#log_temp_files = -1 # log temporary files equal or larger
# than the specified size in kilobytes;
# -1 disables, 0 logs all temp files
log_timezone = 'Europe/Brussels'Je vous remercie, cordialement,
#44 Re : Général » Jointure avec date la plus petite et la plus proche » 22/10/2013 09:54:36
Bonjour,
Le problème c'est que si vous ne définissez pas une certaine limite, vous pourriez très bien vous retrouver avec des taux comme 0.00001 ou bien 99.99999 par exemple, et pas des chiffres aussi "joli" que 1.93 et 2.01
De tête, je dirais :
SELECT t1.id, t1.name, t1.t_timestamp, t2.id, t2.name, (t1.t_timestamp - t2.v_timestamp) / CAST(t.diff AS decimal) AS taux, t2.v_timestamp
FROM table1 t1
JOIN table2 t2 ON t1.name = t2.name AND t2.v_timestamp <= t1.t_timestamp
CROSS JOIN (SELECT (t1.t_timestamp - t2.v_timestamp) AS diff FROM table1 t1 JOIN table2 t2 ON t1.name = t2.name AND t2.v_timestamp <= t1.t_timestamp ORDER BY diff DESC LIMIT 1) t
ORDER BY t1.id ASC, t2.v_timestamp DESC;#45 Re : Général » Jointure avec date la plus petite et la plus proche » 21/10/2013 12:08:23
Oui, c'est possible, mais vous devez d'abord définir ce que signifie "la plus proche inférieur"... inférieur de combien d'unité ? -> 1 jour ? 1 heure ? 1 minute ? 1 seconde ?
#46 Re : Général » limitation du nombre de caractères des colonnes,tables,views,fonctions » 21/10/2013 09:39:28
Bonjour,
je sais tout ca, ma question est ce que on peut limiter cela a 30.
PostgreSQL n'est pas Oracle. Si vous ne voulez pas que les développeurs créer des tables de plus de 30 caractères, mettez en place des règles.
Sinon utilisez des outils comme Jenkins (validateur de script), par contre je ne sais pas s'il en existe pour le SQL.
Cordialement,
#47 Re : Général » Equivalent de tnsname.ora dans PostgreSQL » 09/10/2013 11:48:00
guk92 a écrit :Ainsi lorsque l'utilisateur veut utiliser son application, il n'a plus à préciser l'hôte, son numéro de port ou autre information, tout ce qu'il aura à faire c'est entre le login et son mot de passe.
hote + port + user + pwd => postgresql n'en demande pas plus
Il en demande déjà beaucoup pour les utilisateurs lambda ![]()
L'objectif c'est de supprimer la partie "hote + port" et ne laisser que "user + pwd".
C'est le user qui fera référence au "hote + port".
#48 Général » [RESOLU] Enregistrer toutes les actions liés aux comptes utilisateur » 09/10/2013 10:57:44
- guk92
- Réponses : 9
Bonjour,
J'ai connaissance de "pg_stat_activity", mais je souhaiterais savoir s'il est possible d'enregistrer dans une table de log :
- le compte utilisateur
- l'adresse IP de la machine via laquelle a été exécutée l'action
- le datetime d'exécution
- la requête qui a été exécutée
... à chaque fois qu'un utilisateur exécute une requête. Est-ce que quelque chose est prévue pour ce type d'opération ou faut-t-il utiliser une couche d'abstraction au niveau logiciel pour effectuer cette opération soi-même ?
Merci ![]()
#49 Re : Général » Equivalent de tnsname.ora dans PostgreSQL » 09/10/2013 10:48:18
Bonjour,
Je viens de regarder le contenu du fichier postmaster.pid , ce fichier n'a rien à voir avec un tnsnames.ora ![]()
Voici un contenu d'un "tnsnames.ora" :
COMPTE_ECRITURE_GESTION =
(description=
(address_list=
(address = (protocol = TCP)(host = server.development.gestion)(port = 1521))
)
(connect_data =
(service_name=gestion)
)
)
COMPTE_LECTURE_DISTRIBUTION =
(description=
(address_list=
(address = (protocol = TCP)(host = server.development.distribution)(port = 1521))
)
(connect_data =
(service_name=distribution)
)
)Ainsi lorsque l'utilisateur veut utiliser son application, il n'a plus à préciser l'hôte, son numéro de port ou autre information, tout ce qu'il aura à faire c'est entre le login et son mot de passe.
Après je ne sais pas comment font les administrateurs réseau pour :
* mettre en partage ce fichier pour tous les postes utilisateur.
* intégrer ce fichier tnsnames.ora à ODBC
Merci ![]()
#50 Général » Equivalent de tnsname.ora dans PostgreSQL » 25/09/2013 11:41:40
- guk92
- Réponses : 5
Bonjour,
Je souhaiterais savoir s'il y a un équivalent du tnsnames.ora (d'Oracle) dans PostgreSQL.
Il s'agit tout simplement d'un fichier qui contient des alias qui font références au serveur (dns + port d'écoute).
Ensuite odbcad32.exe récupère le contenu de ce fichier et il ne reste plus qu'à choisir l'alias et d'entrer son mot de passe niveau application de l'utilisateur.
Cela évite tout simplement à l'utilisateur d'aller entrer toutes ces chaines à la main.
Cordialement,