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 21/11/2013 19:44:25

David
Membre

Au sujet des séquences

Bonjour à tous.
J'aimerai savoir si une séquence Postgres est un objet physiquement créé sur le FS comme un objet de type table ou index OU s'il s'agit simplement d'une structure dont les données sont stockées dans le dictionnaire de la base ?
Je pense qu'il s'agit de la 2ème solution car je n'ai pas trouvé de syntaxe 'ALTER SEQUENCE ... MOVE Tablespace ...' ?
Merci.

Hors ligne

#2 21/11/2013 20:30:32

rjuju
Administrateur

Re : Au sujet des séquences

Bonjour,

il s'agit bien d'objets créés physiquement. Il n'y a pas de gestion de tablespace pour les séquences, car il s'agit d'objets peu volumineux qui ne nécessitent le déplacement dans un tablespace.

Hors ligne

#3 22/11/2013 13:39:46

David
Membre

Re : Au sujet des séquences

Bonjour.
En fait, j'avais initialement créé des tables dont certaines embarquaient une séquence, tout ceci étant dans un TS dédié.
Pour certaines raisons, j'ai déplacé ces tables dans un autre tablespace et effectivement, à la lecture des tables systèmes, il semblerait que ces séquences ne bougent pas.
C'est assez gênant si nous devions avoir à supprimer ce tablespace.
Dans ce cas, on serait amené à recréer ces séquences, via la modif des tables (?)

Hors ligne

#4 28/11/2013 20:27:12

SQLpro
Membre

Re : Au sujet des séquences

Les séquences ne sont en fait qu'un nom et une valeur dans une table système interne de PG. Ce ne sont pas des tables et ils n'ont pas de lien génétique avec le stockage de la table.

A +


Frédéric Brouard, alias SQLpro,  ARCHITECTE DE DONNÉES,  Expert langage SQL
Le site sur les SGBD relationnel et langage SQL   : http://sqlpro.developpez.com/
Modélisation de données, conseil, expertise, audit, optimisation, tuning, formation
* * * * *  Enseignant CNAM PACA, ISEN Toulon,  CESI Aix en Provence  * * * * *

Hors ligne

#5 29/11/2013 12:30:27

gleu
Administrateur

Re : Au sujet des séquences

Totalement faux. Les séquences sont gérés comme les tables à la différence prêt qu'elles ne peuvent avoir qu'une seule ligne. Chaque séquence a son propre fichier associé, tout comme une table, et sa valeur se trouve dans ce fichier :

b1=# create sequence s1;
CREATE SEQUENCE
b1=# select * from s1;
 sequence_name | last_value | start_value | increment_by |      max_value      | min_value | cache_value | log_cnt | is_cycled | is_call
ed 
---------------+------------+-------------+--------------+---------------------+-----------+-------------+---------+-----------+--------
---
 s1            |          1 |           1 |            1 | 9223372036854775807 |         1 |           1 |       0 | f         | f
(1 row)

b1=# select pg_relation_filepath('s1');
 pg_relation_filepath 
----------------------
 base/16401/16402
(1 row)

b1=# select relname, relkind from pg_class where relfilenode=16402;
 relname | relkind 
---------+---------
 s1      | S
(1 row)

Guillaume.

Hors ligne

#6 05/12/2013 11:18:45

David
Membre

Re : Au sujet des séquences

Bonjour à tous.
Bon en tout cas mon post aura permis d'éclaircir les idées sur le sujet. Je pense que SQLPro a tout comme moi des références identiques sur un autre SGBD mais qui ne sont pas valables dans PostgreSQL.
Merci à tous pour vos réponses.

Hors ligne

Pied de page des forums