Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Mauvaise performance du plan d'exécution de la procédure stockée SQL - reniflage des paramètres

Fondamentalement oui - le reniflage de paramètres (dans certains niveaux de correctifs de) SQL Server 2005 est gravement endommagé. J'ai vu des plans qui ne se terminent jamais (en quelques heures sur un petit ensemble de données), même pour de petits ensembles de données (quelques milliers de lignes) qui se terminent en quelques secondes une fois les paramètres masqués. Et c'est dans les cas où le paramètre a toujours été le même nombre. J'ajouterais qu'en même temps que je m'occupais de cela, j'ai trouvé beaucoup de problèmes avec LEFT JOIN/NULLs ne se terminant pas et je les ai remplacés par NOT IN ou NOT EXISTS et cela a résolu le plan en quelque chose qui se terminerait. Encore une fois, un (très mauvais) problème de plan d'exécution. Au moment où je m'occupais de cela, les administrateurs de bases de données ne me donnaient pas l'accès à SHOWPLAN, et depuis que j'ai commencé à masquer chaque paramètre SP, je n'ai plus eu de problèmes de plan d'exécution où je devrais creuser cela pour non-achèvement .

Dans SQL Server 2008, vous pouvez utiliser OPTIMIZE FOR UNKNOWN .