Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
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 15/01/2008, 15h29   #1
Membre régulier
 
Inscription : avril 2003
Messages : 131
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 131
Points : 72
Points : 72
Par défaut insert via dblink, performance.

Bonjour,

Je fais tourner deux scripts qui copient (des inserts) des données via un dblink (src: 9i, dst: 10g) dans des tables.

Je fais actuellement des tests de performance avec un seul dblink.

Neanmoins, je me demande, si éventuellement quelqu'un avait déjà eu l'occasion de faire la même chose, si ca serait plus rapide avec deux dblink (un dblink par thread) ?

Merci d'avance.
DjinnS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 15h41   #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
1 DBLink/thread ? C'est à dire ? Tu veux copier la moitié de la table dans un DBLink et l'autre moitié en paralléle dans un 2° DBL ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 15h47   #3
Membre régulier
 
Inscription : avril 2003
Messages : 131
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 131
Points : 72
Points : 72
Si tu veux j'ai divisé en deux listes mes tables à copier.

J'ai donc deux scripts sql en parallèle qui tourne et utilise le même dblink.

Donc avec deux, est ce que ca serait plus performant ?
DjinnS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 15h49   #4
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
A priori je dirais qu'il y a des chances mais tout dépend de la bande passante

En tout cas, ça ne coute rien que de le faire
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 15h53   #5
Membre régulier
 
Inscription : avril 2003
Messages : 131
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 131
Points : 72
Points : 72
Je fais des tests avec un petit lien 100mbits. A terme je devrais être en Giga ... je posterais les temps ^^
DjinnS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 15h55   #6
Membre régulier
 
Inscription : avril 2003
Messages : 131
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 131
Points : 72
Points : 72
Euh j'en profite ... j'ai une erreur justement avec mon dblink:

Code :
ORA-14100: partition extended TABLE name cannot refer TO a remote object
La requete:

Code :
INSERT INTO TOTO.TITI SELECT * FROM TOTO.TITI @oralink PARTITION (P20041114);
J'ai bien trouvé que:

Citation:
An attempt was made to use partition-extended table name syntax in conjunction with remote object name which is illegal.
Mais je vois pas pourquoi il serait illegal de faire une requete sur une partition via un dblink ? Ou c'est moi qui me trompe ?
DjinnS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 15h58   #7
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
je ne sais pas pourquoi mais en effet, c'est interdit
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 15h59   #8
Membre éprouvé
 
Inscription : décembre 2007
Messages : 354
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 354
Points : 408
Points : 408
Citation:
Envoyé par DjinnS Voir le message
Code :
INSERT INTO TOTO.TITI SELECT * FROM TOTO.TITI @oralink PARTITION (P20041114);
C'est ça l'erreur ...
__________________
Consultant et formateur Oracle
Michel SALAIS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 16h01   #9
Membre régulier
 
Inscription : avril 2003
Messages : 131
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 131
Points : 72
Points : 72
Effectivement c'est interdit ...

Une solution consiste à utiliser betwen ... je vais essayer avec ça.

Dommage que ca ne fonctionne pas, ca serait pratique ...
DjinnS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 17h04   #10
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 319
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 319
Points : 5 837
Points : 5 837
Citation:
Envoyé par DjinnS Voir le message
Si tu veux j'ai divisé en deux listes mes tables à copier.

J'ai donc deux scripts sql en parallèle qui tourne et utilise le même dblink.

Donc avec deux, est ce que ca serait plus performant ?
J’ai de doute que ça va améliorer quoi que soit. Je ne pense pas que le dblink c’est un sort de tuyau par lequel les données passent. Mais vous savez quand je me trompe je le reconnaît
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 17h18   #11
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
bah on peut espérer que 2 sessions travaillent plus vite qu'une seule quand même... même si c'est pas évident
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 17h26   #12
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 319
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 319
Points : 5 837
Points : 5 837
Citation:
Envoyé par orafrance Voir le message
bah on peut espérer que 2 sessions travaillent plus vite qu'une seule quand même... même si c'est pas évident
Deux sessions oui. Mais moi j'ai compris que la questions concerne deux dabaselink. Est-ce que je me suis trompé ?
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 17h38   #13
Membre régulier
 
Inscription : avril 2003
Messages : 131
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 131
Points : 72
Points : 72
Je parle de deux dblink vers la même machine, vers la même instance, via le même utilisateur, si ca peut aider ...

edit:

et les deux scripts sql seront lancés via deux sessions différentes.
DjinnS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 17h42   #14
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
Citation:
Envoyé par mnitu Voir le message
Deux sessions oui. Mais moi j'ai compris que la questions concerne deux dabaselink. Est-ce que je me suis trompé ?
2 DBLinks n'ouvent-ils pas chacun une session ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 20h05   #15
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 319
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 319
Points : 5 837
Points : 5 837
Citation:
Envoyé par orafrance Voir le message
2 DBLinks n'ouvent-ils pas chacun une session ?
Et deux session SqlPlus qui utilisent le même dblink n'ont pas le même effet ?
A propo, il y a une commande copy dans SQLPlus qui devrait être utile
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 20h19   #16
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
certes

En effet, COPY c'est très bien aussi mais attention c'est une commande SQL*Plus (et non SQL le langage )
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 20h20   #17
Membre éprouvé
 
Inscription : décembre 2007
Messages : 354
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 354
Points : 408
Points : 408
Citation:
Envoyé par mnitu Voir le message
Et deux session SqlPlus qui utilisent le même dblink n'ont pas le même effet ?
A propo, il y a une commande copy dans SQLPlus qui devrait être utile
Il faut signaler néanmoins que cette commande n'est plus supportée ...
__________________
Consultant et formateur Oracle
Michel SALAIS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 20h21   #18
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
ha bon ? C'est bien dommage
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 20h39   #19
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 319
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 319
Points : 5 837
Points : 5 837
Citation:
Envoyé par Michel SALAIS Voir le message
Il faut signaler néanmoins que cette commande n'est plus supportée ...
T'est certain Michel ? Moi je le trouve encore dans la doc du 11.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2008, 08h59   #20
Membre éprouvé
 
Inscription : décembre 2007
Messages : 354
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 354
Points : 408
Points : 408
Citation:
Envoyé par mnitu Voir le message
T'est certain Michel ? Moi je le trouve encore dans la doc du 11.
Je crois bien que je l'ai lu dans la doc de Oracle 8i ou Oracle 9i ...
Je vais vérifier !

Vérification faite (J'ai regardé dans Oracle 10gR2). Voici un extrait
Citation:
The COPY command is not being enhanced to handle datatypes or features introduced with, or after Oracle8i. The COPY command is likely to be made obsolete in a future release.
__________________
Consultant et formateur Oracle
Michel SALAIS est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h01.


 
 
 
 
Partenaires

Hébergement Web