IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Oracle Discussion :

problème sur un create as select


Sujet :

Oracle

  1. #1
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 106
    Points : 100
    Points
    100
    Par défaut problème sur un create as select
    Bonjour,
    je rencontre le problème suivant. Lorsque je fais un create table A as select ... from B@db_link, la session tourne indéfiniment (j'ai laissé le traitement tourner pendant une nuit...) alors que la volumétrie n'est pas très élevée .

    • La table B ne présente qu'une volumétrie faible (autour de 100 000 lignes).
    • J'ai testé sous sqlplus et TOAD pour un résultat équivalent.
    • Un create A as select * from B@db_link where 2=1, se passe sans problème, la table est créée
    • Le tablespace présente encore pas mal de place et en autoextend...
    • Un select count(*) from B retourne le résultat en un temps raisonnable (quelques secondes)


    Quelqu'un aurait-il déjà rencontré le même problème? Une idée?

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    version ?

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    • Create table as select ... va créer la table et copier les données, c'est-à-dire les 100 000 lignes vont passer par le reseaux.
    • Create table as select ... where 1 = 2 n'a besoin que d'accéder à la définition de la table source, donc bien moins de données à transférer.
    • Select Count(*) from b@db_link n'est pas la même chose que select col1, col2, ... pour la même raison.

    Activez la trace SQL étendue et regardez dans le fichier trace l'origine du problème.

  4. #4
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 106
    Points : 100
    Points
    100
    Par défaut
    La création de la table vide puis l'insertion ont l'air de passer séparément. Par contre le create as select n'a pas l'air de passer.
    je vais voir cela en activant la trace (je connaissais pas, je vais voir comment on fait ça).

    la version est 10g

  5. #5
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par purplebamboo Voir le message
    La création de la table vide puis l'insertion ont l'air de passer séparément. Par contre le create as select n'a pas l'air de passer.
    je vais voir cela en activant la trace (je connaissais pas, je vais voir comment on fait ça).

    la version est 10g
    Il n'y a aucun raison que le create as select ne passe pas si le create et le insert into passent séparément.
    Il y a des tutoriels sur ce site concernant l'activation de la trace.

  6. #6
    Membre confirmé
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 419
    Points : 616
    Points
    616
    Par défaut
    est-ce qu'il y a des lobs dans la table?

  7. #7
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Est-ce que le select fait appel à des tables locales ou seulement une table distante ? Il faudrait voir le plan d'exécution.
    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  8. #8
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Quelle est la requête exacte (qu'on vérifie bien qu'il n'y ait pas de fonction, ou de trucs pénalisant) ?
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  9. #9
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 106
    Points : 100
    Points
    100
    Par défaut
    Bonjour,

    Tout d'abord, merci pour vos réponses.

    non, il n'y a pas de fonctions utilisées. Il s'agit vraiment d'un simple create as select .

    pachot:La table est située dans une autre instance. Je l'appelle à l'aide d'un db_link. Pour le plan d'exécution, je n'ai pas eu le temps de regarder cela. J'y jetterai un coup d'oeil quand j'aurais le temps.

    Pour l'instant, j'ai lancé les requêtes en 2 temps (create puis insert as select). Je vous tiens au courant dès que possible.

Discussions similaires

  1. Problème sur un SELECT COUNT(*)
    Par Aulanh dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 22/01/2010, 14h46
  2. [AC-2007] Problème sur SELECT MAX
    Par KIK83 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 30/11/2009, 21h33
  3. Problème sur un champ SELECT dans une servlet
    Par kcizth dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 13/03/2008, 16h47
  4. Problème de lenteur due à une selection sur une date [CR 8.5]
    Par Fredifredo dans le forum SAP Crystal Reports
    Réponses: 15
    Dernier message: 13/02/2007, 17h10
  5. Problème sur les selects multiples
    Par Nag_Champa dans le forum Langage
    Réponses: 4
    Dernier message: 15/12/2006, 16h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo