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

SAS Base Discussion :

DELETE sur des tables volumineuses


Sujet :

SAS Base

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 34
    Points : 25
    Points
    25
    Par défaut DELETE sur des tables volumineuses
    Bonjour,

    Je voudrais effectuer des DELETE sur une table très volumineuse

    Nombre de ligne de la table : 2 Milliards environs
    La suppression est faite sur le champ « Mois »
    Environ 15 millions de lignes pour chaque mois

    Avec les commandes SAS, j'ai deux possibilités

    Soit une étape Data

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DATA bib.table1 ; 
    SET bib.table1 ; 
    IF mois = 10 Then DELETE ; 
    Run ;
    Avantages :
    temps de traitement acceptable

    Inconvénients :
    Pour effectuer la suppression sur une table de 100 Go, la suppression nécessite presque 100 Go d'espace disque supplémentaire

    Soit une proc SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Proc sql ; 
    DELETE FROM bib.table1 WHERE Mois = 10 ; 
    Quit;
    Avantages :
    Pas de disque supplémentaire pour effectuer l’opération de suppression

    Inconvénients :
    - temps de traitement catastrophiques
    - Après la suppression l'espace disque occupé par le mois=10 n'est pas libéré


    Ma question :

    Y a-t-il une possibilité de partitionner cette table sur la clé= mois pour effectuer des Truncate ou des Drop Partition ?

    Merci d’avance.

  2. #2
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    bah non c'est pas un SGBD c'est un système propriétaire.

    Sache que le IF agit lors de l'écriture de la table alors que le WHERE agit à la lecture. J'estime donc que le IF ne doit pas être utilisé sur une telle volumétrie car pour moi les temps ne sont pas acceptables.

    Recherche donc des papiers traitant de ce genre de problèmes d'update.
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Merci bcp pour ta réponse,

    Pour le IF et le WHERE, je suis tout à fait d'accord avec toi, je peux réécrire ma requête autrement :

    Etape Data

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DATA bib.table1 ; 
    SET bib.table1 ; 
    WHERE mois <> 10 ; 
    Run ;

    Il y a un petit détail que je n'ai pas mentionné au départ, un détail qui change tout, en fait, je travail sur une plateforme SAS SPDS (dédiée à des volumétrie fortes), il y a une possibilité de créer des Cluster dynamiques (équivalent de partitionnement Oracle).

    Je ne voudrais pas partir sur cette piste car je n'ai pas assez de recule sur cette solution ? pour cette raison je chercher à contourner le problème.

Discussions similaires

  1. Mise à jour des statistiques Impossible sur une table volumineuse
    Par joujousagem2006 dans le forum Administration
    Réponses: 21
    Dernier message: 26/05/2014, 05h58
  2. probleme de requetes sur des tables volumineuses
    Par abdoracle dans le forum Oracle
    Réponses: 6
    Dernier message: 14/06/2006, 15h41
  3. Statistiques sur des tables
    Par nuke_y dans le forum Oracle
    Réponses: 2
    Dernier message: 24/04/2006, 14h02
  4. delete sur plusieurs tables
    Par drinkmilk dans le forum Oracle
    Réponses: 11
    Dernier message: 22/03/2006, 16h43
  5. [8.0.5-->9.2.0.5] Checksum sur des tables oracle
    Par bobunny dans le forum Oracle
    Réponses: 9
    Dernier message: 24/11/2004, 12h46

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