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 :

Suppression des données inutiles


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    consultant BI
    Inscrit en
    Mai 2011
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suède

    Informations professionnelles :
    Activité : consultant BI
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 182
    Points : 95
    Points
    95
    Par défaut Suppression des données inutiles
    Bonjour

    Suite a une lenteur détecter sur un serveur de production et suite a la pression de responsable de production
    j'ai besoin de script sql qui me permet de supprimer les données sur un table qui est tréx volumineux
    par exemple supprimer toujours les données qui sont ancien depuis 3 mois en laissant ce qui est après
    y 'a t'il quelq'un qui peux m'aider

    merci

  2. #2
    Membre averti
    Avatar de taibag
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2013
    Messages : 214
    Points : 357
    Points
    357
    Billets dans le blog
    1
    Par défaut
    Bonjour;

    Avec l'aide de l'agent SQL Une requête delete avec le critere de la date ferait la faire.


    Merci.
    मैं एक छात्र हूँ |

  3. #3
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Points : 1 049
    Points
    1 049
    Par défaut
    Fournis le DDL de la table en question en précisant sur quelle date tu dois te baser. Donne nous aussi les tables périphériques en cas de clés étrangères.
    Mais il y a peut être d'autres choses à faire avant de supprimer des données. Il y a surement d'autres axes d'améliorations...
    Blog Perso | Kankuru (logiciel gratuit pour SQL Server)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Pareil que le post précédent et précise la taille réelle de ta table parce que par expérience, la notion de gros varie beaucoup... Et entre une table de 1,5 Go de 4000 lignes sans indexes et une table de 5 Go avec 5 000 000 de lignes et des indexes optimales, y a tout un monde.

  5. #5
    Membre éprouvé
    Avatar de landry161
    Homme Profil pro
    C#,PHP,MySQL,Android...
    Inscrit en
    Juillet 2010
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : C#,PHP,MySQL,Android...

    Informations forums :
    Inscription : Juillet 2010
    Messages : 423
    Points : 1 059
    Points
    1 059
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par joujousagem2006 Voir le message
    Bonjour

    Suite a une lenteur détecter sur un serveur de production et suite a la pression de responsable de production
    j'ai besoin de script sql qui me permet de supprimer les données sur un table qui est tréx volumineux
    par exemple supprimer toujours les données qui sont ancien depuis 3 mois en laissant ce qui est après
    y 'a t'il quelq'un qui peux m'aider

    merci
    Mets au moins la structure de ta table qui fera l'objet de cette suppression

  6. #6
    Membre régulier
    Homme Profil pro
    consultant BI
    Inscrit en
    Mai 2011
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suède

    Informations professionnelles :
    Activité : consultant BI
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 182
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par landry161 Voir le message
    Mets au moins la structure de ta table qui fera l'objet de cette suppression
    ci joint leur structure
    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
    CREATE TABLE [dbo].[mvtFabr](
    	[pt_num] [varchar](18) NOT NULL,
    	[mf_dmvtdeb] [datetime] NOT NULL,
    	[ni_num] [varchar](23) NOT NULL,
    	[mf_trans] [varchar](25) NULL,
    	[pr_num] [int] NULL,
    	[pl_badge] [int] NULL,
    	[mf_statut] [varchar](5) NULL,
    	[mf_dmvtfin] [datetime] NULL,
    	[mf_duree] [float] NULL,
    	[mf_obs] [varchar](78) NULL,
    	[mf_seq] [int] NULL,
    	[of_num] [varchar](8) NULL,
    	[ge_phase] [int] NULL,
    	[mf_qte] [real] NULL,
    	[qc_code] [varchar](10) NULL,
    	[qd_id] [int] NULL,
    PRIMARY KEY NONCLUSTERED 
    (
    	[pt_num] ASC,
    	[mf_dmvtdeb] ASC,
    	[ni_num] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 90)
    )
     
    GO

  7. #7
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par joujousagem2006 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    PRIMARY KEY NONCLUSTERED 
    (
    	[pt_num] ASC,
    	[mf_dmvtdeb] ASC,
    	[ni_num] ASC
    )

    Soit une clef primaire sur... 53 octets !!!
    Ne cherchez plus d'où viennent vos problèmes de performance, vous avez trouvé

    et pourquoi un index non cluster ?
    Y a-t-il d'autres index sur la table ?

    Voyez la pertinente remarque de darkelend
    Mais il y a peut être d'autres choses à faire avant de supprimer des données. Il y a surement d'autres axes d'améliorations...
    revoyez le type de vos clefs et indexez !

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    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 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    1) ajoutez une colonne autoincrémentée de type BIGINT IDENTITY et placez là en clef primaire.
    2) faire de votre clef primaire actuelle une contrainte d'unicité
    3) indexez votre table.

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

  9. #9
    Membre éprouvé
    Avatar de landry161
    Homme Profil pro
    C#,PHP,MySQL,Android...
    Inscrit en
    Juillet 2010
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : C#,PHP,MySQL,Android...

    Informations forums :
    Inscription : Juillet 2010
    Messages : 423
    Points : 1 059
    Points
    1 059
    Billets dans le blog
    1
    Par défaut
    Bon je crois que ton truc dois ressembler à quelque chose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DELETE FROM MyTable 
    where (DATEDIFF(month,@laDatedeTable,sysdatetime())<=3)
    /*La variable @laDatedeTablecorrespond à la colonne de ta table qui est de type datetime et sysdatetime() est la date actuelle*/

  10. #10
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Si par chance joujousagem2006 dispose d'un index sur la colonne en Question, il vaudrait mieux une requête comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DELETE FROM LaTable
    WHERE LaColonneDate < DATEADD(MONTH, -3, CURRENT_TIMESTAMP)
    Afin de profiter de l'index...

Discussions similaires

  1. [MySQL] suppression des données
    Par sanaa16 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 11/06/2008, 13h37
  2. [CR XI] Suppression des zéros inutiles après une virgule
    Par Jsh dans le forum SAP Crystal Reports
    Réponses: 9
    Dernier message: 26/02/2008, 14h13
  3. Réponses: 1
    Dernier message: 01/12/2007, 15h18
  4. Réponses: 2
    Dernier message: 23/06/2006, 10h23
  5. suppression des données
    Par nabil1 dans le forum Oracle
    Réponses: 6
    Dernier message: 07/04/2006, 13h38

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