2010-01-11 10 views
2

J'ai beaucoup de requêtes qui doivent être réglées et je relayais sur DTA (datbase engine tuning adviser qui vient avec sql 2005) pour me donner quelques conseils sur les index. mais ressemble à DTA ne parvient pas à comprendre les requêtes qui utilise des tables temporaires. Y a-t-il un moyen d'obtenir la recommandation de l'indice?optimisation des performances avec procédure ayant des tables temporaires

Merci pour vos suggestions

Cordialement DEE

Répondre

2

Pour faire ce genre de chose que vous devrez tirer les procédures stockées en dehors et mettre en place des scénarios « faux » sur la base des tables temporaires construits par la sprocs (ie créer une base de données scratch et reconstruire les tables en tant que tables permanentes). Configurez le scénario et essayez d'ajuster le conseiller.

En pratique, vous êtes plutôt bloqué à faire ce genre de chose si vous voulez régler les sprocs qui utilisent des tables temporaires de manière particulièrement complexe.

+0

Merci pour votre commentaire, mais si je fais cela et DTA conseille de créer des index sur les tables truquées (tables temporaires), alors quel est le prochain recours? – DEE

+1

Eh bien, vous pouvez créer des index sur les tables #temp dans le cadre du code de procédure stockée, si elles ont un sens. J'ai plusieurs modules où je crée une table #temp et ensuite créer des index sur eux avant d'effectuer n'importe quel travail. Combien de lignes vont généralement dans les tables #temp? Avez-vous essayé des variables de table ou des CTE? –

+1

J'ai l'expérience que si vous avez suffisamment de lignes dans une table #temp pour avoir besoin d'un index, alors les variables @table seront encore plus lentes –

Questions connexes