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

MS SQL Server Discussion :

LOOP IMBRIQUEES OU SSIS ?


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 23
    Par défaut LOOP IMBRIQUEES OU SSIS ?
    Bonjour


    Je dispose d’une table avec près de 3 millions de records exportés d’un fichier txt par SSIS.
    Chaque enregistrement correspond à 1 case parmi 48 définis.
    Ex :

    Table1
    Date1 clientX MontantMin MontantMax condition1 zone1
    Date1 clientY MontantMin MontantMax condition1 zone1
    Date1 clientZ MontantMin MontantMax condition1 zone2
    Date1 clientA MontantMin MontantMax condition2 zone 8
    Date1 clientB MontantMin MontantMax condition3 zone1
    (…jusqu’à condition 48) …
    Date1 clientC MontantMin MontantMax condition48 zoneN

    Et pareil pour les dates

    Date2 clientX MontantMin MontantMax condition1 zone1
    Date2 clientY MontantMin MontantMax condition1 zone3
    Date2 clientZ MontantMin MontantMax condition1 zone7
    Date2 clientA MontantMin MontantMax condition2 zone1
    Date2 clientB MontantMin MontantMax condition3 zone8
    (…jusqu’à condition 48) …
    Date2 clientC MontantMin MontantMax condition48 zoneN

    Et ainsi de suite.

    Je voudrais pouvoir alimenter une autre table TOTAUX avec les totaux Min et Max par date , par condition et par zone
    Ex
    Date1 Condition1 Zone 1 totalMontantMin totalMontantMax
    Date1 Condition1 Zone 2 totalMontantMin totalMontantMax
    Date1 Condition1 Zone 3 totalMontantMin totalMontantMax
    … zoneN,
    Ensuite par condition
    Date1 Condition2 Zone 1 totalMontantMin totalMontantMax
    Date1 Condition2 Zone 2 totalMontantMin totalMontantMax
    Date1 Condition2 Zone 3 totalMontantMin totalMontantMax

    …conditionN

    Ensuite par date

    Date2 Condition1 Zone 1 totalMontantMin totalMontantMax
    Date2 Condition1 Zone 2 totalMontantMin totalMontantMax
    ….

    Et ainsi de suite pour toutes les dates.
    J’arrive à le faire en passant par coldfusion, en faisant des loop imbriquées mais vu le nombre important de records, c’est bcp trop lent et quasi impossible à faire (server timeout).
    Est-il possible de faire les totaux en créant un package SSIS ou mieux intégrer le calcul des totaux à l’insertion des enregistrements dans la table1 ?
    D’avance merci à toutes et à tous

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    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 : 21 999
    Billets dans le blog
    6
    Par défaut
    Le mieux searait d'injecter cela dans une base de données relationnelles. Cela veut dire avec des tables et non des fichiers aux rubriques répétitives.

    Une fois ton information éclatée dans les différentes tables, indexer les clefs primaires et étrangères et faire des requêtes.

    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/ * * * * *

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 23
    Par défaut plusieurs tables ?
    Citation Envoyé par SQLpro Voir le message
    Le mieux searait d'injecter cela dans une base de données relationnelles. Cela veut dire avec des tables et non des fichiers aux rubriques répétitives.

    Une fois ton information éclatée dans les différentes tables, indexer les clefs primaires et étrangères et faire des requêtes.

    A +
    Merci Frédéric pour ta réponse.
    Cependant, si je comprends bien je devrais spliter la grosse table en 48 tables (au moins), or je dois garder le tout dans une seul table car j'ai un moteur de recherche qui porte sur tous les records en général et ca va être galère sur plusieurs tables. Je dois juste alimenter à part dans une autre table les totaux par jour, pour facilter les stats.
    en fait la grosse manip c'est de calculer les totaux pour les enregsitrements actuellement présents (pres de 3 milions). Pour les nouveaux enregistrements insérés, cela prendra fatalement moins de temps car on calculera les totaux au fur à mesure que les nouveaux record seront insérés (au max 350 000 à la fois)

    N'y a-til pas moyen de faire en T-SQL des loop imbriquées ou de faire un package pour calculer les différents totaux.

    d'avance merci

Discussions similaires

  1. [SSIS][2k5] Foreach loop
    Par mikaeru dans le forum SSIS
    Réponses: 3
    Dernier message: 29/08/2008, 10h16
  2. Réponses: 2
    Dernier message: 28/08/2008, 16h36
  3. [SSIS][2k5]FOR LOOP CONTAINER - Format de date
    Par magicsam dans le forum SSIS
    Réponses: 4
    Dernier message: 26/06/2008, 14h00
  4. [SSIS][2k5] - Foreach Loop Container
    Par sandF dans le forum SSIS
    Réponses: 2
    Dernier message: 29/01/2008, 17h30
  5. SSIS : foreach loop avec Répertoire source variable ?
    Par kaboume dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/08/2006, 15h42

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