> Data > L’automatisation à  la loupe

L’automatisation à  la loupe

Data - Par iTPro.fr - Publié le 24 juin 2010
email

par Alex Glauberzon et Martin Wiseman - Mis en ligne le 28/06/2006 - Publié en Avril 2005

Prenez le temps de repenser à la dernière fois où vous avez dû mettre à jour une table contenant un grand nombre de colonnes. Imaginez maintenant que cette table est en cours de construction et que vous êtes chargé d’ajouter ou de supprimer des colonnes, ou encore de changer des spécifications de données de colonnes. Naturellement, cette situation se produit alors que votre emploi du temps est des plus serrés et que vous avez d’autres problèmes plus importants à résoudre. Quel casse-tête ! En fait, vous avez la possibilité d’automatiser une solution à ce problème en combinant les possibilités élémentaires des procédures stockées et le dictionnaire de données sous-jacent de SQL Server.Une procédure stockée est un groupe d’instructions T-SQL compilées dans un plan d’exécution. L’utilisation des procédures stockées procure un certain nombre d’avantages. Premièrement, elles permettent à un développeur de réutiliser efficacement le code. Une fois que vous avez créé une procédure stockée et que vous l’avez stockée dans la base de données, toute personne qui peut y accéder est en mesure de l’appeler à volonté, de sorte que vous n’avez pas besoin de réécrire constamment le même code. Le développeur peut ainsi utiliser de manière plus productive le temps dont il dispose. Deuxièmement, les procédures stockées accélèrent l’exécution des requêtes. Dans la mesure où ce type d’élément est précompilé et où SQL Server réutilise le plan d’exécution résultant, cela se traduit par des économies substantielles en termes de temps et d’utilisation globale du processeur. Si une application appelle constamment les mêmes procédures stockées, elle conserve ces dernières en mémoire, d’où un gain de temps supplémentaire, en particulier par rapport au temps nécessaire pour appeler à plusieurs reprises le code T-SQL équivalent. Troisièmement, le recours aux procédures stockées réduit le trafic réseau global. Au lieu de transmettre de nombreuses lignes de code T-SQL, SQL Server transmet uniquement le nom de la procédure appelée, ce qui optimise l’utilisation de la bande passante réseau. Enfin, les procédures stockées améliorent les contrôles de sécurité. Même si les utilisateurs n’ont pas le droit d’accéder à des tables spécifiques, vous pouvez leur attribuer l’autorisation d’exécuter une procédure stockée qui référence les tables en question. Cette méthode de limitation des accès aux tables peut soulager le travail de l’administrateur.

Même si les avantages de l’utilisation des procédures stockées sont appréciables, vous devez malgré tout consacrer le temps et l’énergie nécessaires à leur création. L’écriture de procédures stockées pour les opérations UPDATE, INSERT et DELETE prend du temps et le processus fournit pas mal d’occasions d’introduire des erreurs. Par exemple, une procédure stockée type pour une opération UPDATE contient plusieurs parties :
une instruction CREATE PROCEDURE; une liste de paramètres, qui peut être longue en fonction du nombre de colonnes dans la table ; une instruction UPDATE ; une liste SET, qui identifie la liste de colonnes mises à jour par la procédure et une clause WHERE énumérant les critères spécifiant les lignes mises à jour. De même, une procédure stockée servant à introduire des lignes dans une table comporte les parties suivantes : une instruction

CREATE PROCEDURE ;
une liste de paramètres ;
une instruction INSERT;
une liste de colonnes qui identifie les colonnes insérées par la procédure et une clause VALUES énumérant les critères qui spécifient les lignes insérées. La création d’une procédure stockée de suppression de lignes d’une table est relativement simple : elle requiert uniquement des critères de sélection en tant que paramètres et une clause WHERE afin de limiter le nombr

L’automatisation à  la loupe

La vue de schéma d’informations d’une base de données contient des métadonnées pour tous les objets de données de la base de données en question. Dans SQL Server 7.0, Microsoft a ajouté les vues de schéma d’informations à la liste des objets système et a ainsi rendu SQL Server conforme à la norme ANSI SQL-92. La figure 1 présente une liste des vues en question de SQL Server 7.0. Ces vues, disponibles uniquement dans la base de données master, sont celles auxquelles nous allons faire référence dans cet article. La vue COLUMNS contient des informations sur les colonnes des tables et les types de données. Les vues CONSTRAINT_ COLUMN_USAGE et TABLE_CONSTRAINTS comportent des informations sur les contraintes, le type de contrainte et les colonnes concernées par une contrainte spécifique. Celle qui nous intéresse est une contrainte de clé primaire. Les colonnes de contrainte de clé primaire requièrent la clause WHERE pour les procédures stockées UPDATE et DELETE.

Dans le programme du listing 1 utilisé pour créer les procédures stockées, nous prenons deux hypothèses importantes.
Premièrement, nous définissons le nom de la procédure sous la forme p__, où la fonction est UPDATE, INSERT ou DELETE. Si le nom de la table contient un espace, le code remplacera ce dernier par un caractère de soulignement (_). Dans l’exemple de code, un espace dans un nom de table tel que My Table sera source de problèmes si vous avez déjà une table intitulée My_Table car vous vous retrouverez avec deux tables du même nom. Deuxièmement, le code définit le nom du paramètre comme une concaténation du caractère arobase (@) et du nom de colonne ; le code remplace les espaces dans le nom de colonne par des caractères de soulignement.

Téléchargez cette ressource

Préparer l’entreprise aux technologies interconnectées

Préparer l’entreprise aux technologies interconnectées

Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.

Data - Par iTPro.fr - Publié le 24 juin 2010