|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
Chef de projet en SSII Inscription : juin 2011 Messages : 2 ![]() |
Bonjour
Je rencontre des problèmes de performance sous SQL2008 R2. J'ai une requête (générée par Analysis services) qui renvoie un nombre relativement important de lignes (> 3M) Lorsque cette requête est exécutée sur un serveur 32bit (2K, 2K5 ou 2K8) elle prend environ 5min. Lorsque je l'exécute sur un serveur 2K8 64bits, même base donc même nombre de lignes en sortie, elle prend 2h15 et occupe la totalité des processeurs. Après de nombreuses recherches et quelques pistes (utilisation d'indexs non clustered, gestion de la mémoire...) je ne parviens toujours pas à isoler le problème. Quelqu'un aurait-il une idée? Merci par avance. |
|
|
01
|
|
|
#2 |
|
Membre chevronné
![]() David BAFFALEUFInscription : février 2008 Messages : 612 ![]() |
Essayer de forcer la sérialisation du plan
__________________
David B. |
|
00
|
|
|
#3 | |
Chef de projet en SSII Inscription : juin 2011 Messages : 2 ![]() |
Citation:
Ce n'est pas mieux. La charge processeur est moins importante en limitant le parallélisme mais les temps de réponse sont identiques. En fait lorsque j'exécute la requete sur le serveur x64, elle commence à renvoyer des lignes très rapidement (après 10sec de traitement) mais les renvoie par petits lots de 60 lignes. Alors que sur le serveur 32bits la requetes s'exécute pendant environ 2min avant de renvoyer le résultat mais affiche ensuite la totalité des lignes en moins de 3min |
|
|
|
00
|
|
|
#4 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Quelle configuration sur votre serveur 32 bits ? (CPU, RAM, version OS etc ..)
Même chose sur votre serveur 64 bits ? Quel est le plan d'exécution généré dans les 2 cas ? Quelles sont les statistiques d'exécution générées dans les 2 cas ? (SET STATISTICS TIME ON .. SET STATISTICS IO ON) ++ |
|
00
|
|
|
#5 |
|
Membre Expert
![]() |
D'ou exécutez vous vos 2 requêtes? sur SSMS en local sur chaque serveur?
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Bonjour,
Il est aussi possible que les jointures se fassent sur des colonnes de type int (4 octets), ce qui n'est pas pour aider sur un processeur 64 bits. Si c'est le cas, il faudrait passer en bigint (8 octets), et voir l'effet ... Pas forcément simple à faire 3 millions de lignes et SSAS ... construiriez-vous un cube ? @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
|
|
#7 | ||
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Citation:
Citation:
++ |
||
|
00
|
|
|
#8 | ||
|
Membre chevronné
![]() David BAFFALEUFInscription : février 2008 Messages : 612 ![]() |
Pour pouvoir comparer, il faut voir les deux plans.
Sur chaque environnement: Code :
__________________
David B. |
||
|
00
|
|
|
#9 | |
|
Membre Expert
![]() |
Citation:
L'éternel débat, mettre la même taille de clé que la taille du processeur ou privilégier les pages gagnées avec la taille moindre? Personnelement je 'taille' mes clefs pour la volumétrie sans tenir compte de la taille du processeur. Il faudrait faire des tests approfondis.
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
|
|
#10 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 954 ![]() |
Tu n 'as pas entièrement tort. C'était plus sensible en 2000 qu'en 2005. Dans mon cours à Orsys je montrais que même un SMALLINT dans un OS 32 bits perdait de 5 à 10% de temps pour vérifier les bits de poids haut, ce qui n'est plus le cas dans 2005.
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#11 | |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Il y a aussi l'architecture des processeurs à prendre en compte. Les caches internes L2 et L3 peuvent être un point de contention sur certains processeurs 64 bits alors que sur des architectures 32 bits le problème ne sera pas forcément présent. Le fameux CPI (Cost Per Instruction).
Il y a aussi les problèmes liés à l'alignement des données en mémoire et qui sont lues par les processeurs et qui sont plus sensibles pour des architectures 32 bits que 64 bits mais bon en principe les processeurs actuels règlent ce problème en ajoutant des bits supplémentaires pour forcer cet alignement. Il y a des cas où passer de 32 bits à 64 bits n'est pas forcément gage de performances (j'ai pû le constater d'ailleurs chez un client). Cela dépend à mon avis de la charge (requêtes) et des caractéristiques physiques du serveur. Citation:
++ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com