|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2009 Messages : 47 ![]() |
Bonjour,
suite a un changement de serveur j'ai une de mes requêtes qui est devenu très longue a exèctuer 12minutes58 contre 1minute09 auparavant. Ancien serveur Windows serveur 2003 avec sql 2008 SP1 Processeur Xeon 5410 2.33 Ghz 8 Go RAM Nouveau serveur Windows serveur 2008 R2 SP1 avec sql 2008 SP2 Processeur Xeon 5504 2.00 Ghz 18 Go RAM Taille de la base : 1.5 Go j'ai comparé tout les option de "sp_configure" avec les options avancé et elle sont identique Je ne sais plus ou cherché Merci de votre aide Thierry |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() |
Il faut nous dire comment le changement de serveur s'est effectué, via :
--> une réplication ? --> un backup/restore ? --> wizard import/export ? dans ce cas les index sont-ils pris en compte ? vérifie si les index posés sur les tables (membres de ta requête dans l'ancien serveur) sont également présents dans le nouveau serveur |
|
00
|
|
|
#3 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 724 ![]() |
Bonjour,
- Quelle configuration CPU sur vos 2 machines ? (Nb de sockets, nb de cores totales) - Est ce que l'option max degree of parallelism est configurée ? Si oui comment ? - Est ce qu'il n'y a pas de limitation au niveau du paramètre max server memory (MB) sur le nouveau serveur ? - Avez vous éventuellement remis les statistiques et les index à jour sur le nouveau serveur ? En prenant une requête de référence et si vous activez les options de statistiques SET STATISTICS IO et SET STATISTICS TIME qu'obtenez vous sur l'ancien et le nouveau serveur ? ++ |
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2009 Messages : 47 ![]() |
Bonsoir,
Merci pour ses premières éléments. Voici les répnses a vos questions Le changement a etait fait par une reinstall total de l'ensemble et un Backup/Restore des bases. Nb de sockets : 1 , nb de cores totales : 4 sur les deux serveurs max degree of parallelism 0 64 0 0 max server memory (MB) 16 2147483647 2147483647 2147483647 Test avec les option IO et TIME Nouveau SERVEUR Temps d'analyse et de compilation de SQL Server : , Temps UC = 0*ms, temps écoulé = 6*ms. (271965*ligne(s) affectée(s)) Table 'F_DOCLIGNE'. Nombre d'analyses 1, lectures logiques 24715, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. SQL Server \endash Temps d'exécution*: , Temps UC = 3619*ms, temps écoulé = 25976*ms. Ancien serveur (264775 ligne(s) affectée(s)) Table 'F_DOCLIGNE'. Nombre d'analyses 1, lectures logiques 27167, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. SQL Server \endash Temps d'exécution : , Temps UC = 3625 ms, temps écoulé = 20378 ms. Javais fait un reorg de l'index et une mise a jour des stats Merci Thierry |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2009 Messages : 47 ![]() |
J'ai relancé ma requete sur les 2 serveurs avec les options TIME et IO voici ce que cela donne :
Ancien SERVEUR (109 ligne(s) affectée(s)) Table 'F_DOCLIGNE'. Nombre d'analyses 58, lectures logiques 1784561, lectures physiques 159, lectures anticipées 24433, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'F_COLLABORATEUR'. Nombre d'analyses 6, lectures logiques 102, lectures physiques 1, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'F_DOCENTETE'. Nombre d'analyses 7936, lectures logiques 18420462, lectures physiques 122, lectures anticipées 2324, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'F_ARTICLE'. Nombre d'analyses 20, lectures logiques 2417652, lectures physiques 3013, lectures anticipées 1533, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'Worktable'. Nombre d'analyses 26031, lectures logiques 2420004, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'Worktable'. Nombre d'analyses 0, lectures logiques 0, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. SQL Server \endash Temps d'exécution : , Temps UC = 161324 ms, temps écoulé = 50453 ms. Nouveau Serveur (109*ligne(s) affectée(s)) Table 'F_DOCLIGNE'. Nombre d'analyses 26088, lectures logiques 637777725, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'F_COLLABORATEUR'. Nombre d'analyses 6, lectures logiques 102, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'F_DOCENTETE'. Nombre d'analyses 7944, lectures logiques 18439086, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'F_ARTICLE'. Nombre d'analyses 20, lectures logiques 2417652, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'Worktable'. Nombre d'analyses 33982, lectures logiques 1425946, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'Worktable'. Nombre d'analyses 0, lectures logiques 0, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. SQL Server \endash Temps d'exécution*: , Temps UC = 3017011*ms, temps écoulé = 766240*ms. On remarque que le nombre d'analyse passe de 58 a 26088 mais je voie pas du tout pourquoi !!!!!! Merci de votre aide Thierry |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 724 ![]() |
Que vous donne un SET STATISTICS PROFILE ON sur vos 2 requêtes ?
++ |
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2009 Messages : 47 ![]() |
Bonsoir
avec SET STATISTICS PROFILE ON Il m'ouvre une deuxieme fenetre avec le deroulement de ma requetes je ne les ai pas mis car tres long dites moi si il vous les faut (213 Lignes) Merci thierry Nouveau Serveur Temps d'analyse et de compilation de SQL Server : , Temps UC = 10826*ms, temps écoulé = 10827*ms. SQL Server \endash Temps d'exécution*: , Temps UC = 0*ms, temps écoulé = 0*ms. (109*ligne(s) affectée(s)) Table 'F_DOCLIGNE'. Nombre d'analyses 26088, lectures logiques 637777725, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'F_COLLABORATEUR'. Nombre d'analyses 6, lectures logiques 102, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'F_DOCENTETE'. Nombre d'analyses 7937, lectures logiques 18422790, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'F_ARTICLE'. Nombre d'analyses 20, lectures logiques 2417652, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'Worktable'. Nombre d'analyses 33982, lectures logiques 1425946, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'Worktable'. Nombre d'analyses 0, lectures logiques 0, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. (213*ligne(s) affectée(s)) SQL Server \endash Temps d'exécution*: , Temps UC = 3014467*ms, temps écoulé = 765771*ms. Ancien Serveur Temps d'analyse et de compilation de SQL Server : , Temps UC = 10360*ms, temps écoulé = 10360*ms. SQL Server \endash Temps d'exécution*: , Temps UC = 0*ms, temps écoulé = 0*ms. (109*ligne(s) affectée(s)) Table 'F_DOCLIGNE'. Nombre d'analyses 58, lectures logiques 1784561, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'F_COLLABORATEUR'. Nombre d'analyses 6, lectures logiques 102, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'F_DOCENTETE'. Nombre d'analyses 7946, lectures logiques 18443742, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'F_ARTICLE'. Nombre d'analyses 20, lectures logiques 2417652, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'Worktable'. Nombre d'analyses 26031, lectures logiques 2420004, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. Table 'Worktable'. Nombre d'analyses 0, lectures logiques 0, lectures physiques 0, lectures anticipées 0, lectures logiques de données d'objets volumineux 0, lectures physiques de données d'objets volumineux 0, lectures anticipées de données d'objets volumineux 0. (212*ligne(s) affectée(s)) SQL Server \endash Temps d'exécution*: , Temps UC = 163622*ms, temps écoulé = 48724*ms. |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() |
le nouveau serveur est une machine virtuelle ?
|
|
00
|
|
|
#9 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 724 ![]() |
Vous pouvez poster directement les plans d'exécutions utilisés par la requête sur les 2 serveurs.
Est-ce qu'une autre requête vous donne les mêmes différences ?` ++ |
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2009 Messages : 47 ![]() |
Bonsoir,
non le nouveau n'est pas une machine virtuel, et oui c'est la seul requete qui me pose problème. Par contre les plans d'execution des deux requètes sont trop volumineux pour etre poster ici (max 60 000 characteres et il font plus de 100 000) je les ai regardés vite fait (323 lignes....) il y a peu d'écart entre les 2(mais je comprend pas tout !!!) Merci encore pour votre aide et votre temps Thierry |
|
|
00
|
|
|
#11 | |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 724 ![]() |
Citation:
Envoyez nous ensuite vos les plans d'exécutions au format "graphique" (clic droit enregistrer sous au format .sqlplan). Ce qui nous intéresse ici c'est de voir la partie qui concerne votre table 'F_DOCLIGNE' sur vos 2 serveurs. Au pire dites nous quels sont les opérateurs utilisés dans les 2 cas. ++ |
|
|
00
|
|
|
#12 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2009 Messages : 47 ![]() |
Bonjour,
j'ai fait ce que vous m'aviez demander, mais les fichiers .sqlplan font 1 Mo chacun (je peu les mettre sur un FTP si besoin) Et des opérations il y en a beaucoup... Se que je note sur le nouveau serveur c'est l'apparition d'opération - FILTRE - INDEX SPOOL - CLUSTERED INDEX SCAN (Actual number of ROW : 272 000 environ) contre sur l'ancien - CLUSTERED INDEX SEEK (Actual number of ROW : 17 000 environ) Merci Thierry au cas ou je post ma requete Code :
|
||
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() ![]() |
Peux-tu vérifier si les index crés sur les tables f_docligne et f_collaborateur RepDoc sont les mêmes sur les deux serveurs ?
|
|
00
|
|
|
#14 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2009 Messages : 47 ![]() |
Bonjour,
oui tout est identiques a tel point que je viens backup/Restore la base du nouveau serveur sur l'ancien pour refaire des test et c'est pareille voir encore plus rapide sur l'ancien Heuresement qu'on est en période de fête sinon j'aurais tout bazardé déjà ![]() Merci encore de votre aide Thierry |
|
|
00
|
|
|
#15 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 724 ![]() |
Pouvez-vous tout de même faire une mise à jour des statistiques de votre table f_docligne en FULL SCAN et de refaire un test par la suite ?
++ |
|
00
|
|
|
#16 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2009 Messages : 47 ![]() |
Bonjour,
j'ai fait un UPDATE STATISTICS [dbo].[F_DOCLIGNE] WITH FULLSCAN GO et relancé les test, pas d'amélioration. (j'avais deja fait un FULLSCAN sur l'ensemble des tables et des vues) Merci Thierry |
|
|
00
|
|
|
#17 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 724 ![]() |
Ok.
Je n'ai pas regardé le contenu de votre requête visiblement l'optimiseur ne veut pas utiliser votre index. Les index SPOOL sont en général utilisés lorsque la table n'est pas indexée. (je suppose ici que vos index ne sont pas fragmentés ou très peu). Vous pouvez tenter de forçer l'utilisation de votre index pour voir si les performances s'améliorent pour votre requête (WITH INDEX ...) ++ |
|
00
|
|
|
#18 | ||
![]() ![]() |
Vous pouvez déjà enlever vos UNION ALL je pense.
Est-ce que les résultats sont équivalents avec cette requête ? Code :
__________________
Email : http://scr.im/waldar |
||
|
00
|
|
|
#19 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2009 Messages : 47 ![]() |
Bonjour,
je viens de tester votre requete et elle semble donné un résultat identique (faut que je verifie le tout) Une petite difference quand meme le temps d'execution !!! Ancien serveur : 1'09'' Nouveau serveur : 12'58'' New req new serveur : 18'' Je ne suis pas le créateur de la requete mais elle semble comporté plus de sous requete et plus de calcul sont-il tous inutile ?? En tous cas merci pour se pas de géant. Je verifie le tout et reviens vous donner les résultats. Thierry |
|
|
00
|
|
|
#20 | |||
![]() ![]() |
Citation:
J'ai regroupé les sous-ensembles en un ensemble complet (plus de filtre) et j'ai procédé à l'attribution des colonnes avec un CASE. Il se pourrait que la requête soit encore améliorable, mais là j'en suis moins sûr : Code :
__________________
Email : http://scr.im/waldar |
|||
|
00
|
Copyright © 2000-2012 - www.developpez.com