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 :

Quellue interface pour travailler sur une grosse table ?


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut Quellue interface pour travailler sur une grosse table ?
    Bonjour,

    néophyte en SQLServer, je dois néanmoins travailler sur une table qui reçoit des exports d'une base de compta. Ma base compta et ma table export sont sur un serveur 2000 Server. Cette table unique comporte plus de 300 000 enregistrements et la plupart des champs sont des strings.

    Je dispose d'un autre serveur pour héberger mes services web.

    Pour travailler sur ma table d'export, j'avais pensé faire une connexion odbc en php, langage que je maitrise bien.

    Le problème est que les temps de réponses sont hyper hyper long... Tellement long que je suis prêt à trouver utiliser un autre langage pour interfacer ma grosse table. Mais lequel ? Quel langage me permettrait d'afficher plus rapidement le résultat de mes requêtes sur 300 000 enr ? et sur quel serveur ? le serveur web ou le serveur SQL ?

    Postulat de base : je ne peux évidemment travailler que sur le table d'exports et pas sur la base de compta elle même.

  2. #2
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut
    Il y a plusieurs chos à voir avant de penser à changer de langage. Car je ne pense pas que changer de langage soit necessairement la solution.

    Il faut que tu arriver à localiser la source de la lenteur.

    Pour cela :
    - tes requetes sont elles optimisées ?
    - tes tables sont elles indexés ?
    - ton serveur est il suffisament puissant ( CPU + RAM ) pour herberger SQL Server ?
    - Y a t il d'autres applis qui interrogent le serveur et qui peuvent ralentir le serveur ?
    - Y a til des problèmes reseaux qui pourraient être à l'origine de la lenteur ?

    Bref, il y a plein de chose. Je te conseilles d'essayer d'explorer toutes ces pistes avant de vouloir changer de langage.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Par défaut
    Bonjour,

    j'ajoute que 300000 enr c'est que dalle. Sauf si tu as 400 colonnes en nvarchar(3000)...

    T'es sur que c'est le serveur SQL qui est lent ? As-tu essayer de lancer la requete directement sur le serveur SQL via le Query Analyseur ?

    Parce que si les packages qui transitent par le réseau sont énormes, ...

    Et la performance ne dépend pas du language utilisé, mais de la conception du système...

  4. #4
    Membre éclairé Avatar de DonkeyMaster
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 95
    Par défaut
    Il est vrai que 300 000 enregistrements, c'est pas mal, mais ce n'est pas impressionant.
    Optimise tes requêtes. Peut-être même, écrit une vue, si tu as des choses compliquées. Perso, j'aime écrire des vues pour tout et pour rien, ça me permet de réfléchir moins.
    Vérifie les index (crées-en d'autres). Tu es sûr que tu as besoin de tous tes champs en varchar? Essaye de les passer en int, bit, char, etc... Ne néglige pas char.
    Essaie de traiter le plus d'informations possibles dans ta requête. Par exemple, on retrouve parfois des gens qui font genre "select * from table", puis "foreach (object[] objs in results){ if (objs[0] == "qqch") ... }" dans leur code.

    Si vraiment c'est intenable, passe à d'autres SGBD. Il semblerait que MySQL est plus performant, mais tu y perdras des fonctionnalités.

    Sache que finalement, le langage est bien la chose qui compte le moins.

  5. #5
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut
    Pour info, j'utilise SQL Server et de très nombreuses bases, avec de très nombreuses tables, et de très nombreux enregistrement. A coté des tes 300000 enregistrements sotn vraiment rien par rapport à mon serveur SQL. Et SQL Server tiens tres bien la route.

    Tout ca pour dire que je ne pense pas que ce soit SQL Server qui soit en cause... mais plus la maniere dont tu geres tes bases.

    Bref, verifies les différents points que l'on t'as dit.

Discussions similaires

  1. Optimisation d'une requête SELECT sur une grosse table
    Par eracius dans le forum Requêtes
    Réponses: 4
    Dernier message: 26/05/2008, 14h51
  2. Suppression de doublons sur une grosse table
    Par CaptainT dans le forum SQL
    Réponses: 20
    Dernier message: 24/05/2008, 09h25
  3. Création d'un index sur une grosse table
    Par Jester dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 02/04/2008, 12h44
  4. Requête lente sur une grosse table
    Par mr_keyser dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 12/12/2007, 19h15
  5. Update trés lent sur une grosse table
    Par neo.51 dans le forum Oracle
    Réponses: 21
    Dernier message: 14/12/2005, 11h06

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