SQL Performance lente lors de l'access aux loggings les plus récents

J'ai une database MSSQL2005 qui a des loggings datant de 2004, il y a actuellement un peu less de 1.000.000 loggings dans un tableau particulier.

Chose est, si je cours un rapport comparant datatables de 2009 par rapport aux données de 2010, 2008 par rapport à 2009, 2009 par rapport à 2009 ou toute combinaison d'années avant cette année, les résultats sont returnnés dans 1-5 secondes.

Cependant, si je publie un rapport contenant des données de 2011, le rapport prend ~ 6 minutes.

J'ai vérifié datatables et elles ressemblent aux années précédentes et sont comparées avec les mêmes données utilisées dans tous les rapports.

C'est comme si la database avait dépassé certaines limites; datatables pour cette année sont devenues fragmentées et donc plus difficiles d'access. Je ne dis pas que c'est le cas mais c'est peut-être pour tout ce que je sais.

Quelqu'un a des suggestions?

Shaun.

Mettre à jour:
Depuis la publication de la question j'ai trouvé DBCC DBREINDEX nom_table qui semble avoir fait l'affaire.

À quoi ressemblent les plans d'exécution? Si vous avez besoin d'une mise à jour manuelle des statistics sur la table, il se peut que les lignes nouvellement insérées ne soient pas représentées de manière disproportionnée dans les statistics et choisissent donc un plan sous-optimal.

Voir ce billet de blog pour une explication de ce problème. Statistiques, estimations des lignes et colonne de la date ascendante

En outre, vérifiez que votre requête 2011 ne rencontre pas de blocage en raison d'insertions ou de mises à jour simultanées qui n'affectent pas les requêtes sur datatables historiques.