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 :

Linux MSSQL et lenteur


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 6
    Par défaut Linux MSSQL et lenteur
    Bonjour,
    je suis tombé sur un problème que je n'arrive pas à expliquer et j'aurais besoin de vos lumières...
    je possède 2 serveurs 1 web et 1 sql serveur qui constituent un serveur web
    le web (linux) attaque la bdd via mssql (freetds)
    tout se passe bien dans le meilleur des mondes sauf dans un cas, en effet plus mes requêtes sont longues plus les réponses du serveur le sont, vous allez me dire c'est normal mais je n'en ai pas l'impression.
    par exemple un select sur 2 champs avec genre un in (.........) si le in fait plus de 1000 caractères la réponse revient quelques secondes plus tard (une centaine de ligne) alors que sont temps de réponse en local sont instantanées...
    j'ai pensé dans un premier temps a un souci de connexion entre les serveurs mais ce n'est pas ca.
    de plus c'est exponentiel genre 500 lignes 10 sec , 1000 ligne 30sec 2000 80 etc... alors que la même requête en local est retournée instantanément.
    Ca me donne l'impression d'être mis dans un buffer et de rester en attente...
    Pour info si je mets ma grosse requête dans une procedure et que j'appelle celle-ci via mon script web le retour est instantanée...
    dès que je transfert une grosse quantité de datas ca tombe en fait.

    merci a vous

    Franck

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    tout se passe bien dans le meilleur des mondes sauf dans un cas, en effet plus mes requêtes sont longues plus les réponses du serveur le sont, vous allez me dire c'est normal mais je n'en ai pas l'impression.
    Non, ce n'est pas normal. SGBDR n'est pas synonyme de lenteur.

    par exemple un select sur 2 champs avec genre un in (.........) si le in fait plus de 1000 caractères la réponse revient quelques secondes plus tard (une centaine de ligne) alors que sont temps de réponse en local sont instantanées...
    j'ai pensé dans un premier temps a un souci de connexion entre les serveurs mais ce n'est pas ca.
    de plus c'est exponentiel genre 500 lignes 10 sec , 1000 ligne 30sec 2000 80 etc... alors que la même requête en local est retournée instantanément.
    Ca me donne l'impression d'être mis dans un buffer et de rester en attente...
    Pour info si je mets ma grosse requête dans une procedure et que j'appelle celle-ci via mon script web le retour est instantanée...
    En fait vous faites passer votre chaîne de requête à travers le réseau ... or les réseau est ce qu'il y a de plus lent dans une infrastructure, après les disques mécaniques ...

    Ensuite il faut que SQL Server parse le IN, le trie, ce qui prend du temps CPU, et si le nombre de valeurs est grand, peut prendre plusieurs secondes ...

    En supposant que vous n'utilisez pas EXEC sp_executesql, à chaque fois que vous soumettez une requête, celle-ci doit d'abord être comparée à toutes celles qui sont déjà dans le cache et dont les filtres sont "en dur" : vous voyez le boulot.
    Ensuite, comme la requête n'est pas trouvée, elle doit être compilée, puis exécutée, et enfin le résultat doit passer de nouveau à travers le réseau.
    Vous le dites vous même : quand vous passez par une procédure stockée le résultat revient dans un temps correct.

    Vous rejoignez en cela l'idée des SGBDR dits "épais", qui vous évitent ce tracas.

    D'autre part, j'évoque ici les raisons pour lesquelles il est bien mieux d'utiliser des procédures stockées.

    Enfin si vous voulez voir où se situe la lenteur, vous pouvez utiliser les statistiques du client

    @++

Discussions similaires

  1. Problème de lenteur Oracle 10gR1/linux Red HAt AS 3
    Par kanko dans le forum Administration
    Réponses: 14
    Dernier message: 01/12/2008, 10h19
  2. Lenteur de MATLAB sous Linux
    Par Bombernator dans le forum MATLAB
    Réponses: 9
    Dernier message: 21/11/2008, 15h36
  3. Lenteur Postgres sous linux
    Par zilzil dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/07/2007, 14h25
  4. lenteur telechargement sous linux
    Par maire106 dans le forum Administration système
    Réponses: 6
    Dernier message: 17/07/2007, 15h23
  5. Lenteur d'ouverture Table ODBC MSSQL
    Par tornade69 dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/03/2007, 19h03

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