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

Développement SQL Server Discussion :

Optimisation du temps d'éxécution des traitements


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Architecte technique
    Inscrit en
    Avril 2015
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2015
    Messages : 86
    Par défaut Optimisation du temps d'éxécution des traitements
    Hello tout le monde,


    Sur SSIS, je lis une table de 20millions de lignes dans laquelle de façon parallèle je lui passe trois traitements de mise en qualité de données( grâce au multicast: doublons, manquant et caractères valides) mais c'est très très très long j'y arrive jamais au bout. J'aimerais prendre quelques conseils pour que ce soit rapide svp.

    Je vous remercie infiniment

    Vaness

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 636
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Sans la structure de vos tables et index ni la requête générée, difficile de vous aider

    Sinon, les performances sont rarement au rendez vous avec les ETL, avez vous essayé d'exécuter vos requêtes directement sans passer par SSIS ?

  3. #3
    Membre chevronné
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Par défaut
    Bonjour,

    Comment effectuez vous vos mise a jour ? Via des lookup ?

    Pouvez vous nous fournir la structure de vos tables et les colonnes a mettre a jour avec les colonnes de recherches ?

    Avez vous des index sur ces colonnes ?


    Comme dit précédement, avez vous tester la même opération en direct via SQL Server via des procédures stockées par exemple si vous voulez continuer a utiliser SSIS comme ordonnaceur

    A+

    Julien

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    Globalement pour accélérer les mises à jour les éléments importants sont les suivants :
    1) bien dimensionner les espaces de stockage en provisionnant les fichiers pour plusieurs années d'exploitation et en multiplexant les fichiers. But : ne jamais avoir d'opération de croissance en pleine mise à jour et paralléliser les accès physiques aux données tant en lecture qu'en écriture
    2) supprimer tout ce qui logiquement va contraindre le traitement, par exemple les déclencheurs inutiles et les index non sémantiques dont les données sont impactés par le traitement
    3) découper les mises en jours en plus petits lots, par exemple par fragments de 100 000 lignes afin de minimiser la demande en cache
    4) augmenter le cache si nécessaire
    5) utilisez au maximum des procédures stockées et faire en sorte que toutes les tables, vues et autres objets soient préfixés par leur schémas SQL, même si c'est toujours dbo.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre confirmé
    Femme Profil pro
    Architecte technique
    Inscrit en
    Avril 2015
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2015
    Messages : 86
    Par défaut
    Merci à tous pour vos réponses

    Alors pour les doublons je passe par un aggregate je compte par clients le nombre de clients redondant ensuite via un conditional split je rentre dans ma table gestion_des _erreurs les lignes qui sont dupliquées autrement dit si mon nombre de ligne par clients est strictement supérieur à 1.
    Ensuite pour les caractères invalides j'utilise le data quality client pour créer mes règles grâce à une regex. Ensuite sur SSIS, je fais le lien avec ma base de connaissances . Je fais de même pour savoir si jai des valeurs manquantes je crée une regle dans ma base de connaissance grace à data quality client. Le but en fait est de mettre dans une ta gestion_des _erreurs les lignes des clients qui présentent des valeurs manquantes ou/et caractères invalides ou/et doublons. Je n'ai pas du tout crée d'index. Le but est d'optimiser les temps de traitement en utilisant SSIS.

    Je vous remercie

    Vaness Nom : Capture_gestion.PNG
Affichages : 808
Taille : 53,6 Ko

  6. #6
    Membre chevronné
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Par défaut
    Quand vous lancez votre traitement avez vous déjà analysé coté SQL Server ( via l'activity Monitor ou des traces par exemple ) comment se comporte le moteur ?

    Ne pas mettre d'index n'est pas bon non plus ... Vous accedez à des données pour mettre a jour d'autres données situées a des références spécifiques ...

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/11/2012, 12h27
  2. Réponses: 6
    Dernier message: 22/09/2010, 15h10
  3. Réponses: 6
    Dernier message: 11/03/2009, 11h26

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