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 :

optimisation de base.


Sujet :

MS SQL Server

  1. #1
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut optimisation de base.
    Bonjour,

    Nous avons une petite base Aloes, dont certaines requêtes dépassent 30 secondes...

    On me demande de regarder coté serveur les optimisations qui peuvent être apportées...

    Je propose :

    Disque dur.

    Arrêter le serveur 1H00. Défragmenter le disque. Vérifier que l’espace disque libre > 33 % Disque.
    Dimensionner la base pour 3 années à venir afin d’éviter la future fragmentation coté disque.

    Mémoire.

    Regardez s’il y a 4 Giga de RAM. Paramétrez Windows pour affecter 3 go sur 4 à SQL Serveur 2000 si c’est possible.

    Indexation.

    Mettre en place un plan de maintenance pour rafraichir les index.

    Statistiques.

    Mettre en place un plan de maintenance pour rafraichir les statistiques.
    Il n'est pas question de changer le matériel, seulement de l'optimiser, concernant les requêtes, elles sont complexes et si on peut éviter de les toucher, c'est mieux pour le moment puisqu'il ne s'agit pas d'une priorité, la performance, et qu'il ne s'agit pas d'introduire des bugs dans le développement.
    Le but est d'intervenir rapidement et d'améliorer ce qu'il peut l'être facilement...

    Est ce que le passage en sql serveur 2005 pourrait améliorer significativement les temps de réponses ? La migration est envisagée...

    Merci de vos conseils...

    Yann.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Points : 210
    Points
    210
    Par défaut
    Je ne pense pas que le problème sera résolu par le passage en 2005.

    Une mauvaise indexation en 2000 sera tout aussi mauvaise en 2005.
    Une requêtes mal écrite en 2000 le sera aussi en 2005.
    ...

    Pour ce qui est des propositions formulées dans ton message, ok.

    Mais après cela, il est possible que tu doivent réécrire du code SQL.

    Utilises le générateur de profil pour identifier les requêtes foireuses. J'examine tout particulièrement la colonne Reads. Si elle est trop élevée, la requêtes doit être optimisée (code + indexation).

    Utilises aussi les index couvrants.

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut indexation.
    Le code des tables a été généré avec Power AMC, par conséquent, nous avons, en principe, une indexation minimale : Clé Primaire et Clé étrangère.

    Il est possible que certaines de nos requêtes fasse une utilisation de transact sql qui réduit la performance finales des requêtes ( fonctions,fonctions tables )...

    Je viens de vérifier, il y a un plan de maintenance chaque semaine qui défragmente les index. Par contre l'option mettre à jour les statistiques est grisé... Par conséquent, je suppose que la réindexation provoque une mise à jour des statistiques.

    La base est largement plus petite que le disque dur. donc le disque a 50% espace disque libre.

    Nous avons 1Go de RAM dédié à SQL Serveur. J'espère que c'est suffisant pour le cache! Le nombre d'utilisateurs simultannées ne dépasse pas 2. ( environs 1000 connexions sur 6 mois pour nos applicatifs de calcul )

    Il est prévu que je travaille lundi sur l'optimisation sur aloes... Par conséquent, j'espère pouvoir appliquer une trace sur Aloes.

    Qu'est ce que tu appelles un index couvrant ? un index avec toutes les colonnes utilisées dans la requête ?

    La couverture d'index consiste à construire un index avec les colonnes qui sont utilisées dans la clause Where, puis les colonnes qui sont lues. Par exemple, dans la requête

    select a, b from table where c = 33;

    un index couvrant va être index(c,a,b).

    Dans la résolution des requêtes, MySQL commence par lire l'index. Une fois que les lignes voulues ont été identifiées, MySQL va lire les données dans le fichier de données. Sauf que, si les données demandées sont déjà lues, c'est à dire qu'elles sont déjà dans l'index utilisés pour la requête, MySQL ne va pas chercher les données sur la table. Le gain de performance est alors notable.
    Est ce que je peux utiliser cette technique avec succés sur sql serveur ?

    Merci de vos conseils

    Yann.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Points : 210
    Points
    210
    Par défaut
    C'est bien cela en ce qui concerne les index couvrants.

    Pour ce qui est du nombre de Reads, j'essaie qu'il soit le plus petit possible. 1 Reads correspond à une lecture de page de 8 K.

    En fonction du nombre de reads, cela te donne une idée de ce qui est lu sur le disque. Et comme le disque dur est l'élément le plus lent d'un système, l'objectif sera de faire en sorte que le nombre de lectures de page soit le plus faible possible.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut
    merci

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

Discussions similaires

  1. optimiser une base de données oracle
    Par ALLAM dans le forum Administration
    Réponses: 6
    Dernier message: 10/04/2007, 08h12
  2. Listing / Comment optimiser cette base de donnée
    Par ds-network dans le forum Requêtes
    Réponses: 3
    Dernier message: 05/02/2007, 09h08
  3. Optimisation de base de donnée MySQL
    Par gnafron dans le forum Requêtes
    Réponses: 5
    Dernier message: 02/02/2007, 11h15
  4. comment optimiser sa base?
    Par sher56 dans le forum InterBase
    Réponses: 5
    Dernier message: 16/03/2006, 05h11
  5. Optimisation grosse base
    Par druidus dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 14/06/2005, 12h40

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