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 :

10G taille max d'une requête ?


Sujet :

Oracle

  1. #1
    CUCARACHA
    Invité(e)
    Par défaut 10G taille max d'une requête ?
    Salut,

    Je dois injecter environ 30000 lignes dans une table à plat dont la clef primaire est composée de deux champs non numériques.

    Actuellement, chaque injection ouvre une connexion, excute une requête insert et ferme la connexion autant de fois que nécessaire.

    C'est super lent.

    J'aimerais concaténer plein de insert into dans une chaine et l'executer en une fois.

    Quelle est la taille maxi d'une requête oracle.

    D'avance merci

    Laurent

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Je ne sais pas s'il y a une table maximale aux requêtes SQL, mais pour votre besoin j'utiliserais soit SQL*Loader, soit une EXTERNAL table.

  3. #3
    CUCARACHA
    Invité(e)
    Par défaut
    Je ne connais pas... :'( je vais essayer de voir ça.

    Merci pour l'info

    Laurent

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Ah non ce n'est peut-être pas votre besoin en fait, j'ai lu fichier je ne sais pas où.

    La bonne méthode c'est de faire un prepared statement, et de lui envoyer par binds variables simplement les valeurs dont vous avez besoin.

    Je n'y connais rien en C#, mais sur la façon de faire cet exemple Java est très parlant (c'est un lien que j'ai piqué à mnitu ) :
    http://method-r.com/downloads/doc_do...e-cary-millsap

  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 Laurent Jordi Voir le message
    Salut,

    Je dois injecter environ 30000 lignes dans une table à plat dont la clef primaire est composée de deux champs non numériques.

    Actuellement, chaque injection ouvre une connexion, excute une requête insert et ferme la connexion autant de fois que nécessaire.

    ...
    Salut Laurent,

    Encore une fois avec Oracle c'est du foot qu'on y parle.

    Il n'y a rien de plus lente avec Oracle que d'ouvrir une connexion, exécuter une requête et fermer la connexion. Rien!

    Laisson la parole à Tom Kyte:
    Now, in SQL Server it is a very common practice to open a connection to the database for each
    concurrent statement you want to execute. If you are going to do five queries, you might well
    see five connections in SQL Server. SQL Server was designed that way—much like Windows
    was designed for multithreading, not multiprocessing. In Oracle, whether you want to do five
    queries or five hundred queries, the maximum number of connections you want to open is
    one. Oracle was designed that way. So, what is a common practice in SQL Server is something
    that is actively discouraged in Oracle; having multiple connections to the database is something
    you just don’t want to do.
    Pour ton besoin le plus simple devrait être (comme la dit Waldar)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    insert into ma_table
    Select *
      From ma_external_table
    [Edit]
    Regardez aussi cette discution assez récente.
    [/Edit]

    [Edit2]
    Voilà ce que la doc dit à ce sujet
    Note:

    The limit on how long a SQL statement can be depends on many factors, including database configuration, disk space, and memory
    Ca c'est très clair et précis.
    [/EDIT2]

  6. #6
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 901
    Points : 1 065
    Points
    1 065
    Par défaut
    Pour répondre à ta question, je crois que la taille max d'un ordre est de 64ko

    .

Discussions similaires

  1. taille max d'une requête
    Par Denn's dans le forum Développement
    Réponses: 14
    Dernier message: 11/08/2010, 16h02
  2. taille max d'une photo jpg dans un champ blob de mysql
    Par zidenne dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 04/10/2006, 09h42
  3. Taille max d'une image
    Par Risike dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/05/2006, 17h16
  4. [VBA] taille max d'une variable public
    Par gigs dans le forum Général VBA
    Réponses: 9
    Dernier message: 23/11/2005, 15h27
  5. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38

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