in

Batch Script pour simplifier la maintenance de la base de données SQL Server

Outre la création de sauvegardes, il existe une variété de tâches et de fonctions que SQL Server met à disposition qui peuvent à la fois améliorer les performances et la fiabilité de vos bases de données. Nous vous avons déjà montré comment sauvegarder des bases de données SQL Server avec un simple script de ligne de commande Ainsi, de la même manière, nous fournissons un script qui vous permettra d’effectuer facilement des tâches de maintenance courantes.

Compacter / réduire une base de données [/Compact]

Plusieurs facteurs contribuent à l’espace disque physique utilisé par une base de données SQL Server. Juste pour en nommer quelques-uns:

  • Au fil du temps, à mesure que des enregistrements sont ajoutés, supprimés et mis à jour, SQL augmente et réduit constamment les tables, ainsi que la génération de structures de données temporaires pour effectuer des manipulations de requêtes. Afin de répondre aux besoins de stockage sur disque, SQL Server augmentera la taille de la base de données (généralement de 10%) selon les besoins afin que la taille du fichier de la base de données ne change pas constamment. Bien que cela soit idéal pour les performances, cela peut provoquer une déconnexion avec l’espace de stockage utilisé car si, par exemple, vous ajoutez un très grand nombre d’enregistrements qui entraîne la croissance de la base de données et supprimez ensuite ces enregistrements, SQL Server ne récupérera pas automatiquement ce espace disque.
  • Si vous utilisez le mode de récupération complète sur vos bases de données, le fichier journal transactionnel (LDF) peut devenir assez volumineux, en particulier sur les bases de données avec un volume élevé de mises à jour.

Le compactage (ou la réduction) de la base de données récupérera l’espace disque inutilisé. Pour les petites bases de données (200 Mo ou moins), ce ne sera généralement pas beaucoup, mais pour les grandes bases de données (1 Go ou plus), l’espace récupéré peut être important.

Réindexation d’une base de données [/Reindex]

Tout comme la création, l’édition et la suppression constantes de fichiers peuvent entraîner une fragmentation du disque, l’insertion, la mise à jour et la suppression d’enregistrements dans une base de données peuvent entraîner une fragmentation des tables. Les résultats pratiques sont les mêmes dans la mesure où les opérations de lecture et d’écriture subissent une baisse des performances. Bien que ce ne soit pas une analogie parfaite, la réindexation des tables dans une base de données les défragmente essentiellement. Dans certains cas, cela peut augmenter considérablement la vitesse de récupération des données.

En raison du fonctionnement de SQL Server, les tables doivent être réindexées individuellement. Pour les bases de données avec un grand nombre de tables, cela peut être très difficile à faire manuellement, mais notre script frappe chaque table de la base de données respective et reconstruit tous les index.

Vérification de l’intégrité [/Verify]

Pour qu’une base de données reste à la fois fonctionnelle et produise des résultats précis, de nombreux éléments d’intégrité doivent être en place. Heureusement, les problèmes d’intégrité physique et / ou logique ne sont pas très courants, mais il est recommandé d’exécuter occasionnellement le processus de vérification d’intégrité sur vos bases de données et d’examiner les résultats.

Lorsque le processus de vérification est exécuté via notre script, seules des erreurs sont signalées, donc aucune nouvelle n’est une bonne nouvelle.

Utilisation du script

Le script de commandes SQLMaint est compatible avec SQL 2005 et supérieur et doit être exécuté sur une machine sur laquelle l’outil SQLCMD est installé (installé dans le cadre de l’installation de SQL Server). Il est recommandé de déposer ce script dans un emplacement défini dans votre variable PATH Windows (c’est-à-dire C: Windows) afin qu’il puisse facilement être appelé comme n’importe quelle autre application à partir de la ligne de commande.

Pour afficher les informations d’aide, entrez simplement:

SQLMaint /?

Exemples

Pour exécuter un compact puis une vérification sur la base de données «MyDB» en utilisant une connexion de confiance:

SQLMaint MyDB / Compact / Verify

Pour exécuter une réindexation puis compacter sur «MyDB» sur l’instance nommée «Special» en utilisant l’utilisateur «sa» avec le mot de passe «123456»:

SQLMaint MyDB /S:.Special / U: sa / P: 123456 / Reindex / Compact

Utilisation de l’intérieur d’un script batch

Bien que le script batch SQLMaint puisse être utilisé comme une application à partir de la ligne de commande, lorsque vous l’utilisez dans un autre script batch, il doit être précédé du mot clé CALL.

Par exemple, ce script exécute toutes les tâches de maintenance sur chaque base de données non système sur une installation SQL Server par défaut à l’aide de l’authentification approuvée:

@ÉCHO OFF
SETLOCAL EnableExtensions
SET DBList = « % TEMP% DBList.txt »
SqlCmd -E -h-1 -w 300 -Q “SET NoCount ON; SELECT Name FROM master.dbo.sysDatabases WHERE Name Not IN (‘master’, ‘model’, ‘msdb’, ‘tempdb’) »>% DBList%
FOR / F «tokens usebackq = 1» %% i IN (% DBList%) DO (
APPELER SQLMaint «%% i» / Compact / Réindexer / Vérifier
ECHO +++++++++++
)
SI EXISTANT% DBList% DEL / F / Q% DBList%
ENDLOCAL

Téléchargez le script SQLMaint Batch depuis SysadminGeek.com

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Comment utiliser les gestes d'édition de texte sur votre iPhone et iPad

Comment utiliser les gestes d’édition de texte sur votre iPhone et iPad

Comment changer le fond d'écran de Windows 10 en fonction de l'heure de la journée

Comment changer le fond d’écran de Windows 10 en fonction de l’heure de la journée