web-dev-qa-db-fra.com

Possible d'exécuter deux commandes DBCC indexdefrag simultanément, chacune sur une table différente?

Je suis en train d'exécuter un script qui effectue un DBCC indexdefrag sur chaque table dans une base de données SQL Server 2005, une table à la fois. L'utilisation de DBCC DBReindex au lieu de IndexDEFRAG n'est pas une option, en raison des contraintes d'espace et des exigences de disponibilité.

J'ai remarqué que cela prend beaucoup de temps pour que certaines tables soient défragmentées. Par exemple, si j'examine la vue Dynamic Management de "Sys.dM_Exec_Requests", je peux voir que l'indexdefrag suivant est actuellement à l'écart de l'index en cluster d'une table qui a une table_IDE de 829610394:

DBCC indexdefrag (0, 829610394, 1)

Je sais que ce sera une longue période avant que le processus de défragmentation se termine. En laissant de côté le fait que le script en cours d'exécution éventuellement défragmentera toutes les tables, y a-t-il un préjudice en moi d'exécuter manuellement un autre DBCC indexdefrag sur l'indice en cluster d'une autre table, tandis que la commande actuelle s'exécute? Les deux tables seront-elles réellement défragmentées en même temps si je le fais?

9
RelentlessMike

Notez que DBCC IndexDefrag & dBReindex est obsolète et remplacé par Alter Index:

IMPORTANT

Cette fonctionnalité sera supprimée dans une future version de Microsoft SQL Server. N'utilisez pas cette fonctionnalité dans de nouveaux travaux de développement et modifiez des applications qui utilisent actuellement cette fonctionnalité dès que possible. Utilisez Alter Index à la place. -- http://msdn.microsoft.com/en-us/library/ms177571 (v = sql.90) .aspx

En ce qui concerne la course à deux fois simultanément, cela dépend de votre présentation de fichier. S'ils sont tous sur le même disque (s), vous risquez probablement de ralentir chaque bas alors qu'ils se battaient contre l'autre pour les E/S. Vous seriez préférable de réorganiser ou de reconstruire si nécessaire. Consultez le script de Michelle Ufford ici pour une solution automatisée: http://sqlfool.com/2010/04/index-defrag-script-v4-0/