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 :

Différence de performances énorme entre versions 2008 2012 2014


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de DeWaRs
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 291
    Par défaut Différence de performances énorme entre versions 2008 2012 2014
    Bonjour à tous,

    Je fais face a un problème que je n'arrive pas a comprendre...
    J'ai trois machine tournant sous Windows 2012 R2 (16CPU / 32Go de RAM) configuré au niveau systeme exactement pareil (Configuration déployée en utilisant Opscode Chef)
    Sur chaque machine, j'ai installé une version de SQL Server :
    - SQL Server 2014 R2 Enterprise (seul SQL Engine et IS sont installés)
    - SQL Server 2012 R2 Enterprise (seul SQL Engine et IS sont installés)
    - SQL Server 2008 R2 Enterprise (seul SQL Engine et IS sont installés)

    Les DATA / Transaction / Backup et pagefile sont sur des disques différents.

    Sur chacun de ses servers, j'ai créer une database et importer une table contenant 26214400 lignes depuis un autre server SQL "de production"
    J'effectue ensuite une requête SQL qui créée une nouvelle table comme ceci (Cette requête m'a été fournis par un developper)

    https://gist.github.com/DeWaRs1206/0791c56eca8c4114bfa1 (je dois la mettre sur github car elle est trop longue pour ce forum..)

    Sur mon server SQL 2014 R2, cette requête prend 3:30min environs, alors que sur 2008 et 2012, elle prend environ 1h !!
    Je n'ai aucune idée d'ou vient le problème et de comment le résoudre. La seule différence que je vois entre les 3 serveurs est que lorsque je lance un "Display querry estimation time", sur 2014 il fait du parallélisme alors que sur 2012 et 2008 il ne le fait pas.

    Je me doute bien que personne, avec ces informations, ne va pouvoir me trouver une solution, mais si l'un de vous a quelques pistes, je suis preneur !

    Merci d'avance.

    DeWaRs

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 608
    Billets dans le blog
    10
    Par défaut
    Marche pas l'url du script

  3. #3
    Membre éclairé Avatar de DeWaRs
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 291
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Marche pas l'url du script
    Etrange. Celle-ci : https://gist.githubusercontent.com/D...6/sqlquery.sql ?

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 608
    Billets dans le blog
    10
    Par défaut
    Ca marche, mais vla la requête de cow-boy
    Par contre, ce n'est pas la question, mais je ne comprends pas ce que vous attendez comme résultat : vous voulez charger une host variable avec une requete sans filtre et il n'y a pas de clause de limitation de la recherche

  5. #5
    Membre éclairé Avatar de DeWaRs
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 291
    Par défaut
    Hello,

    Malheureusement, je ne vais pas vraiment pouvoir répondre a cette question. Ce que je sais, c'est que cette requête est utilisée pour des tests (pas de perf ) pour le développement d'une application de mon entreprise.
    Cette requête créé une nouvelle table avec un certain contenu, et cette table est ensuite utilisée pour d'autre tests.
    Comme vous l'avez souligné, l'idée de ce thread n'est pas d'optimiser cette requête, mais plutôt de comprendre pourquoi il y a une telle différence de performance entre les différentes versions de SQL.

    Cordialement

    DeWaRs

  6. #6
    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,

    Effectivement ces différences sont assez surprenantes, mais il faut noter que l'optimiseur en SQL Server 2014 est nouveau; comme le passage au niveau le plus haut de compatibilité ne se fait pas automatiquement, l'avez-vous fait pour la base de données concernée ?
    Avez-vous aussi mis à jour toutes les statistiques à l'aide d'UPDATE STATISTICS ?
    Avez-vous configuré la quantité de mémoire octroyée à SQL Server (option max server memory) ?
    Notez-vous des différences importantes entre les plans d'exécution des mêmes requêtes sur les 3 instances ?

    Les DATA / Transaction / Backup et pagefile sont sur des disques différents.
    Pouvez-vous nous dire si les trois serveurs sont distincts et physiques, ou virtualisés sur le même serveur hôte ?
    Quand vous parlez de disques différents, s'agit-il de LUN distincts ?

    @++

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/04/2012, 21h40
  2. Réponses: 9
    Dernier message: 19/05/2009, 22h42
  3. Différence entre version 8.16 et 8.1.7.4
    Par billout9 dans le forum Oracle
    Réponses: 3
    Dernier message: 13/10/2006, 08h23
  4. différence entre version entreprise et standard?
    Par aline dans le forum Oracle
    Réponses: 13
    Dernier message: 12/07/2005, 16h54

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