Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2007, 09h09   #1
Invité de passage
 
Inscription : février 2007
Messages : 3
Détails du profil
Informations personnelles :
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : février 2007
Messages : 3
Points : 1
Points : 1
Par défaut Recherche de l'ordre de tri des indexs

Bonjour

Je suis sur le développement d'un logiciel fonctionnant avec PostGre 8.2 fonctionnant sur Windows XP, Ce logiciel doit pouvoir comparer une base de données PostGreSQL avec une base Oracle ou MS SQL (Comparaison des clés primaires, des indexes, des données). Sur PostGre, je n'arrive pas à déterminer l'ordre de tri des indexes (si ils sont ascendants ou descendants).

Connaissez vous la requête qui pourrait me l'indiquer? Merci.

(Edit, je voudrais aussi déterminé s'ils sont partitionnés)
Setep' est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2007, 13h03   #2
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 291
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 291
Points : 2 738
Points : 2 738
Citation:
Envoyé par Setep'
Bonjour

Je suis sur le développement d'un logiciel fonctionnant avec PostGre 8.2 fonctionnant sur Windows XP, Ce logiciel doit pouvoir comparer une base de données PostGreSQL avec une base Oracle ou MS SQL (Comparaison des clés primaires, des indexes, des données). Sur PostGre, je n'arrive pas à déterminer l'ordre de tri des indexes (si ils sont ascendants ou descendants).

Connaissez vous la requête qui pourrait me l'indiquer? Merci.

(Edit, je voudrais aussi déterminé s'ils sont partitionnés)
voir la table système
pg_catalog.pg_am

http://www.postgresql.org/docs/7.4/s...log-pg-am.html
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2007, 11h49   #3
Invité de passage
 
Inscription : février 2007
Messages : 3
Détails du profil
Informations personnelles :
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : février 2007
Messages : 3
Points : 1
Points : 1
L'ennui c'est que pour obtenir l'identifiant pour pg_am, faut utiliser un id dans pg_proc qui s'obtient avec un autre oid. Mais dans pg_index, le seul identifiant pour pg_proc se trouve dans un oidvector, et je ne sais comment obtenir les oid dans le vector. (si j'ai bien compris, je suis nouveau sur PostGreSQL)
Par contre pour le partitionnement, je n'ai toujours pas trouvé.
Setep' est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2007, 14h23   #4
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 291
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 291
Points : 2 738
Points : 2 738
Citation:
Envoyé par Setep'
L'ennui c'est que pour obtenir l'identifiant pour pg_am, faut utiliser un id dans pg_proc qui s'obtient avec un autre oid. Mais dans pg_index, le seul identifiant pour pg_proc se trouve dans un oidvector, et je ne sais comment obtenir les oid dans le vector. (si j'ai bien compris, je suis nouveau sur PostGreSQL)
Par contre pour le partitionnement, je n'ai toujours pas trouvé.
un oidvector est une suite d'entiers séparés par un espace…
c'est assez simple à scanner dans n'importe quel langage…

en php explode()
en ruby split()
en Objective-C componentsSeparatedByString:
en C sscanf dans une boucle…
etc.

Le partitionnement étant défini au niveau des tables via le mécanisme d'inhéritance : c'est à ce niveau-là que vous regarderez…

Il n'y a pas de partitionnement des index à proprement dit, les index peuvent être utiles pour optimiser l'accès en optimisant les requêtes sur les contraintes qui "partitionnent" la table…

Le partitionnement en PostgreSQL se fait de manière non explicite mais en combinant différentes fonctionnalités, il ne sera pas simple de déterminer à coup sûr que l'on est face à un partitionnement décidé par le concepteur en examinant les tables systèmes…

détecter que plusieurs tables descendent de la même table est simple,
détecter qu'un même champ hérité fait l'objet de contraintes différentes dans chaque table fille l'est déjà un peu moins,
détecter que ces contraintes n'ont pas d'intersection logique et couvrent tout l'espace des valeurs possibles est encore un peu plus compliqué…
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2007, 15h28   #5
Invité de passage
 
Inscription : février 2007
Messages : 3
Détails du profil
Informations personnelles :
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : février 2007
Messages : 3
Points : 1
Points : 1
D'accord merci beaucoup.
Setep' est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h51.


 
 
 
 
Partenaires

Hébergement Web