|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre chevronné
![]() Serge LESPAGNARDConsultant informatique Inscription : janvier 2004 Messages : 588 ![]() |
Bonjour,
Nous venons de migrer un SqlServer 2000 vers 2008 R2. Dans une appli, j'ai la requête suivante Code :
Pour info, "vRESUsersGlob" est une vue qui pointe sur plusieurs serveurs liés. Après quelques recherches et tentatives, j'ai pu isoler la ligne qui posait problème, dans la clause WHERE Si je remplace cette ligne par alors ça ne prend de nouveau plus que quelques secondes... Quelqu'un aurait-il une explication logique à ce phénomène ? Merci. |
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Bonjour,
Outre le fait que je penche plus pour l'utilisation de COALESCE() que de ISNULL() parce que la première est ANSI, je ne vois pas pourquoi vous auriez une telle différence ... Est-ce que si vous ré-exécutez la requête avec ISNULL() après l'avoir exécutée avec COALESCE() vous obtenez le résultat en quelques secondes ? Si ce n'est pas le cas, pouvez-vous poster les plan d'exécution réels de chacune des deux requêtes ? (CTRL + M avant l'exécution de celles-ci). @++
__________________
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
|
|
|
#3 |
|
Membre chevronné
![]() Serge LESPAGNARDConsultant informatique Inscription : janvier 2004 Messages : 588 ![]() |
Bonjour,
Non rien ne change si j'exécute la requête avec Coalesce avant celle avec IsNull. Voici les plans d'exécution réels. C'est vrai qu'il sont relativement différents, mais je ne comprends pas pourquoi... et je n'aime pas ne pas comprendre Merci. |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Pouvez-vous donnez la définition et les index de la table ou de la vue vRESUsersGlob ?
@++
__________________
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
|
|
|
#5 | ||
|
Membre chevronné
![]() Serge LESPAGNARDConsultant informatique Inscription : janvier 2004 Messages : 588 ![]() |
Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com