Les fichiers de données de notre base de données de production SQL Server 2005 vivent sur un disque physique séparé, que l'outil Défragmenteur de disque de Microsoft Windows 2003 rapporte comme étant fragmenté à 99%.
Nous avons programmé une tâche pour défragmenter ce lecteur à 3h00 du matin un samedi matin. Le travail s'est terminé après 40 minutes sans aucune erreur apparente. Cependant, le lecteur reste fortement fragmenté.
Aurions-nous dû arrêter les services SQL Server avant la défragmentation?
LE CONTEXTE
Par demandes de contexte: nous avons une instance Microsoft SQL Server 2005 (9.00.5324.00) exécutant Windows Server 2003 (SP2) 32 bits sur le matériel Dell PowerEdge 2950, vers 2007, avec 4 Go de RAM. Le PowerEdge 2950 possède quatre disques de 68 Go configurés en RAID-1 pour créer deux disques virtuels de 68 Go: (1) C (démarrage et système d'exploitation) et D (fichier d'échange, diverses autres données); et (2) E (données SQL). À ma connaissance, le personnel informatique n'a jamais défragmenté aucun de ces disques ... Le Défragmenteur de disque signale une fragmentation de fichiers de 66% (C), 77% (D) et 99% (E). L'analyseur de performances signale les résultats moyens suivants: "Fichier d'échange:% d'utilisation" = ~ 6,8% ; "SQL Server: Buffer Manager - Durée de vie de la page" = 20 secondes ; et "PhysicalDisk: Moyenne de disque / écriture, lecteur E" = entre 300 et 1,. Nous devons procéder à une mise à niveau matérielle et SQL Server très nécessaire dans quelques mois (à savoir, nouveau matériel, Windows Server 2012 64 bits, SQL Server 2012 64 bits, 12 Go de RAM), mais, en raison de la fin les performances des utilisateurs, souhaitent atténuer le problème autant que possible. Ainsi, la réflexion sur la défragmentation d'un fichier peut aider le lecteur E, le principal lecteur de données SQL.
En passant, la semaine dernière, nous avons retiré deux disques défectueux et reconstruit la baie ... pas sûr que cela compte. Nous passons un contrat avec une autre équipe informatique pour assurer la maintenance du serveur, nous n'avons donc pas d'accès direct à l'équipement ... notre organisation ne paie que les services.
Nous pouvons nous permettre les temps d'arrêt pendant les fenêtres de maintenance planifiées régulièrement (chaque semaine) ainsi que les temps d'arrêt hors bande, si nécessaire, pendant la nuit.
la source
SELECT *
partout, ou d'une autre faute professionnelle.Réponses:
Personnellement, j'ai utilisé Raxco PerfectDisk (non associé à la société ou à l'un de leurs employés) pour effectuer des défragmentation en ligne des LUN SQL Server. Fonctionne parfaitement, si cela ralentit un peu le serveur. Je recommanderais de le faire pendant les périodes d'activité plus légère. Quand je dis "fonctionne parfaitement", je fais référence à cela ne corrompant pas le volume ou les fichiers de données SQL.
Le défragmenteur intégré fait un très mauvais travail si certaines structures sont fragmentées sur le lecteur. PerfectDisk vous montre des détails sur tous les éléments qui sont fragmentés, y compris les tables d'allocation NTFS, les répertoires, les flux de fichiers alternatifs, etc. etc.
PerfectDisk défragmente-t-il les bases de données SQL? http://support.raxco.com/KB/a106/does-perfectdisk-defragment-sql-databases.aspx
Voir cette copie d'archive du magazine Technet News concernant SQL Server et la fragmentation: http://web.archive.org/web/20100803204458/http://www.microsoft.com/technet/abouttn/flash/tips/tips_083104.mspx
la source
Votre problème n'est pas la fragmentation du disque. Votre problème est lié à la RAM et aux analyses des tables d'application:
Vous avez besoin de beaucoup plus de RAM. Comme dans votre nouveau serveur, il devrait y avoir beaucoup plus de 12 Go. Commencez avec 64 Go, cela coûte essentiellement dix sous . Et oui, corrigez votre application pour utiliser les index. 20 secondes est une indication très claire des analyses de table qui jettent le pool de mémoire tampon. Vous devez corriger l'application, ajouter les index requis et corriger vos requêtes . Pour votre cas, la défragmentation des disques est autant un hareng rouge que les harengs rouges.
Oh, et veuillez déplacer le journal pour séparer les broches physiques des données . Seul.
la source
Brad McGehee le décrit bien ici:
http://www.bradmcgehee.com/2011/06/do-you-ever-physically-defragment-your-sql-server-mdf-ldf-files/
... si vous laissez le service SQL Server en cours d'exécution pendant votre défragmentation, les fichiers de base de données sont ouverts et donc pas du tout défragmentés.
la source