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 :

[SQL SERVER] Table contient trop d'enregistrements ?


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut [SQL SERVER] Table contient trop d'enregistrements ?
    Bonjour,

    J'utilise SQL SERVER 2000 et j'ai créé une table qui contient 80 enregistrements. Je pensais que S SERVER gérerait plutot bien ce grand nombre de données mais il s'avère qu'une simple requete de selection me prend une vingtaine de secondes !
    J'imgine que la clef étant de type CHAR(9) n'aide pas beaucoup en terme de rapidité mais meme en rajoutant une clef primaire de type numérique le temps pris par requête est affreusement long...
    Auriez vous une solution pour accélerer le temps d'accés / parcourt / requête sur la table ?

    Merci d'avance,

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    Une 20aine de seconde pour un select sur une table de 80 enregistrements ? Ca peut prendre des heures sur n'importe quel système si quelqu'un d'autre est en train de modifier par exemple un de ces enregistrements. Le select demande un verrou partagé, mais il ne peut l'obtenir si un autre utilisateur utilise au préalable un verrou exclusif sur une des pages de la table.

    Quel état vous donne un sp_who ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    Pardon c'est 80 000 ! Pour l'instant je suis seul a bosser sur ce serveur ...

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 23
    Points : 23
    Points
    23
    Par défaut
    posède tu des ordres de tri sur ton select ? Je sais qu'en oracle, les ordres de tri font chuter les performances de façon importante et il faut indexer les colonnes de tri.

    Sinon, peux tu effectuer un plan d'exécution et rédiger indiquer le résultat.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    Non non c'est une requête des plus basic...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT * 
    FROM matable
    20 sec Cela vous parait il bcp pour une table de 80 000 enr ? Personnellement je trouve ca plutot enorme ..

  6. #6
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Poste le scipt de définition de ta table.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    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
    CREATE TABLE [dbo].[T_SYMBOL] (
    	[symbPiece] [char] (9) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    	[Designation] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    	[numDess] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    	[repDess] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    	[indiceDess] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    	[refSymb] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    	[stockMin] [int] NULL ,
    	[stockAlerte] [int] NULL ,
    	[us] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    	[ucdt] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    	[Numfour] [int] NULL ,
    	[puSymb] [money] NULL 
    ) ON [PRIMARY]
    GO

  8. #8
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 23
    Points : 23
    Points
    23
    Par défaut
    --> Lance un DBCC CHECKTABLE(table) pour corriger les éventuelles erreurs d'indexation

    Vérifie si ça va mieux sinon

    --> Lance UPDATE STATISTICS table pour mettre à jour les statistiques de la table dont se sert SQLSERVER pour ses plans d'exécution

    Par contre je pense pas que tu comptes récupérer 80000 lignes d'un coup pour les traiter ?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    En fait c'est une table de référence qui contient une liste que je dois présenter sur mon prog.
    C'est simplement de la 'affichage a l'écran, puis si quelque chose interesse l'utlisateur je dois ajouter la référence. Rien de compliquer, mais je cherchais une solution pour optimiser l'affichage car la ca rame sec

    Merci à tous pour votre aide , je vais éssayer ce que tu m'as dis TrollMaster et je vous tien au courant.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    Résultats DBCC pour 'T_SYMBOL'.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Il y a 79768 lignes dans 875 pages pour l'objet 'T_SYMBOL'.
    Exécution de DBCC terminée. Si DBCC vous a adressé des messages d'erreur, contactez l'administrateur du système.
    UPADTE STATISTIC : La ou les commandes ont réussi.

    Voilà. Si jamais vous connaissez d'autres trucs et atuces qui faciliterait l'affichage / coonsultation de cette table je suis preneur.

    ENcore Merci à tous.

  11. #11
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Déjà, à première vue, commence par ajouter une Clé primaire sur ta table.
    Pense également à ajouter des index sur certains champs sur les quelles portes tes paramêtres de recherche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VB6 : Access vers SQL Server (tables et requetes)
    Par hehehe dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/01/2008, 09h21
  2. [SQL Server] Table cachée
    Par Riwalenn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/11/2007, 09h08
  3. Projet ADP + SQL Server : tables en lecture seule
    Par hannii dans le forum Access
    Réponses: 8
    Dernier message: 09/03/2007, 14h16
  4. Réponses: 2
    Dernier message: 27/12/2006, 13h31
  5. [CR9][SQL Server] forcer la sélection à 5 enregistrements
    Par __fabrice dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 02/11/2005, 11h20

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