Précédent   Forum des professionnels en informatique > Bases de données > Décisions SGBD
Décisions SGBD Forum de décisions sur le choix en bases de données. Le Comparatif
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 08/06/2005, 11h06   #1
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 76
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2005
Messages : 76
Points : 29
Points : 29
Par défaut [Postgresql] insertion sans doublon

Bonjour,

je suis plutôt novice en matière d'administration de base de données.
J'ai fait un script java (J2EE) d'insertion de données dans une table qui peut contenir plus d'un million de lignes. Le fichier source à l'insertion peut contenir facilement 200k lignes.

Les données sont caractérisées ainsi: pour chaque jour de l'année, pour une région donnée, j'ai une série de chiffres...
Une année représente donc un certain nb de lignes: 365 jours * 468 régions.

Les régions sont en fait un int4, la date du type AAAAMMJJ est un int4 aussi.

Quel serait la solution la moins couteuse en ressources pour vérifier à chaque insertion que les données ne sont pas déjà présentes dans la base ?

Un index sur le N° de région, un autre sur la date.
Et je fait à chaque insertion je fait une requete "test" sur le couple (N° région, Date) ?
Pwill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2005, 11h21   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
http://sqlpro.developpez.com/cours/doublons/

N'y a-t-il pas d'indexes unique ?

Sinon, le forum PostgreSQL ne serait-il pas plus adapté ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2005, 11h25   #3
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 793
Points : 17 793
Un seul index non cluster bicolonne dans le sens du test.

Exemple si la requête de recherche est :
SELECT *
FROM MaTable
WHERE LaDate = ... AND LaRegion = ...

Alors l'index doit être composé de Ladate, LaRégion.

a +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2005, 11h37   #4
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 76
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2005
Messages : 76
Points : 29
Points : 29
Désolé si je n'ai pas posté dans la bonne sous catégorie. Je sais pas si c'est vraiment lié à postgres.

J'ai une cle auto incrémentable a partir d'une sequence.
J'ai lu entre temps la page tuto sur les doublons.
Donc je souhaite éviter les doublons relatifs.

Si j'ai bien compris, un seul index sur le couple date/région.
Je fait ma requête de recherche du même style.
Et si je trouve une ligne je n'insère pas.

Je vais me renseigner sur les index car je ne vois pas ce qu'est un index non cluster bicolonne...

Edit: à priori c'est ok et plutôt simple !

Merci à vous deux.
Pwill 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 20h59.


 
 
 
 
Partenaires

Hébergement Web