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

SSIS Discussion :

[SSIS] [2K8] Saturation mémoire pour un coposant destination oracle


Sujet :

SSIS

  1. #1
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut [SSIS] [2K8] Saturation mémoire pour un coposant destination oracle
    Bonjour à tous,
    J'utilise un composant OLE DB source qui pointe sur une base Oracle avec le driver Microsoft pour Oracle.

    Ma requête génère (testée sous un requêteur) quelques 8000 lignes mais contenant un champ de type BLOB que SSIS transforme en DT_TEXT et contenant potentiellement beaucoup de données.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    select 
    dct.DATE_REPLICATION,
    dct.DCT_DETCOM
          ,dct.DCT_FACTURE
          ,dct.DCT_VERSIONCONTRAT
          ,dct.DCT_NUMEROCONTRAT
          ,dct.DCT_DATEEDITCONTRAT
          ,dct.DCT_DATEDEBUT
          ,dct.DCT_DATEFIN
          ,dct.DCT_NBPAX
          ,dct.DCT_DATACONTRAT
          ,dct.DCT_CONTRAT
          ,dct.DCT_EDITIONS
          ,dct.DCT_DATE
          ,dct.DCT_MNT_COM_ENREG
          ,dct.DCT_EST_IMPRIMEE_VERSION
          ,dct.DCT_DATEEDIT_PREMIER
          ,dct.DCT_DATEEDIT_PRECEDENT
          ,dct.BRS_ID
          ,dct.AGE_CODE_MODIF
          ,dct.AGT_CODE_MODIF
    , dct.EVENT_TYPE
    from g4nfprod.DETCOMTO_REPLICATION dct
    JOIN (
      SELECT dctdate.DCT_DETCOM
            ,dctdate.DCT_FACTURE
            ,dctdate.DCT_VERSIONCONTRAT
            , MAX(dctdate.DATE_REPLICATION) AS MAX_DATE
      FROM g4nfprod.DETCOMTO_REPLICATION dctdate
      group by  dctdate.DCT_DETCOM
            ,dctdate.DCT_FACTURE
            ,dctdate.DCT_VERSIONCONTRAT
              ) alldate
      ON alldate.DCT_DETCOM = dct.DCT_DETCOM
      AND alldate.DCT_FACTURE = dct.DCT_FACTURE
      AND alldate.DCT_VERSIONCONTRAT = dct.DCT_VERSIONCONTRAT
      AND alldate.MAX_DATE = dct.DATE_REPLICATION
    Le problème est que lors de l'exécution, SSIS me sature la mémoire avant même d'avoir sorti la moindre ligne du composant.
    J'ai l'impression qu'il prépare toutes les données avant de démarrer.
    Je ne vois pas comment le forcer à avancer un peu.
    Alexandre Chemla - Consultant MS BI chez Masao

  2. #2
    Membre éclairé Avatar de Bernardos
    Homme Profil pro
    Consultant Senior dba sql server & Microsoft Business Intelligence
    Inscrit en
    Avril 2008
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Senior dba sql server & Microsoft Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 332
    Points : 723
    Points
    723
    Par défaut
    bete et idiote question : as tu vraiment besoin d'extraire ce champ de type blob avec le reste? as tu fait un test sans?
    bien à toi
    loic
    Loïc BERNARD
    Consultant Senior dba sql server & Microsoft Business Intelligence



    Il n'y a jamais de problèmes, il n'y a que des solutions!

  3. #3
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Je ne suis pas obligé de le prendre en même temps, mais je dois le récupérer à un moment.

    Tu penses à une extraction de tous les champs puis un script d'update ?
    Alexandre Chemla - Consultant MS BI chez Masao

  4. #4
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Le problème est que cet imbecile d'oracle refuse de faire un insert into .. select .., UneColonneCLOB
    Alexandre Chemla - Consultant MS BI chez Masao

  5. #5
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    En fait le problème vient de ma table de destination, en oracle.

    Si la table est vide, aucun problème avec tous mes champs.
    Par contre si la table de destination contient déjà beaucoup de données (2millions de lignes) avant même de commencer à faire tourner le select (de le passer en jaune) il cherche à valider je ne sais comment la table de destination et fait grimper l'utilisation mémoire
    Alexandre Chemla - Consultant MS BI chez Masao

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Bonjour,

    As-tu essayé d'utiliser les composants Oracle Source et Oracle Destination (présents dans la dernière version de SQL Server) ? Note qu'ils utilisent un driver dédié MSORA.

    Par ailleurs n'hésite pas à en faire une mise à jour de v1.0.0.1 en v1.1.0.1 (pour vérifier quelle version tu possèdes, il faut aller dans Toolbox, clic droit, Choose Items, SSIS Data Flow, Oracle Destination).
    La version 1.1 se trouve en cherchant SSIS Oracle destination attunity v1.1.

    a+, =)
    -=Clement=-

  7. #7
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Hello,
    Ca aurait été une bonne idée, mais après avoir installé le composant sur mon poste, sans le trouver dans SSIS, je suis allé faire un tour sur la doc pour trouver des informations sur les types pris en compte :
    CLOB, NCLOB, BLOB etc. --> Not Supported

    Pour le moment j'ai résolu mon problème en passant par une table temporaire que je vide à chaque traitement. Je fais ensuite un update en script de ma vrai table par cette table temp.


    EDIT : finalement en cherchant 1às de plus je l'ai trouvé
    Alexandre Chemla - Consultant MS BI chez Masao

Discussions similaires

  1. SSIS plusieurs fichiers sources pour 1 ADO destination
    Par topolino dans le forum Développement
    Réponses: 4
    Dernier message: 28/04/2011, 11h06
  2. [SSIS] [2K8] Utilisation mémoire des lookups
    Par Jinroh77 dans le forum SSIS
    Réponses: 2
    Dernier message: 15/01/2011, 13h44
  3. Réponses: 8
    Dernier message: 22/12/2010, 15h47
  4. Réponses: 4
    Dernier message: 13/07/2010, 10h12
  5. [SSIS] [2K8] Probleme mémoire Look Up
    Par Samoo dans le forum SSIS
    Réponses: 11
    Dernier message: 29/03/2010, 12h07

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