Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parPerceval Guy Modifié depuis plus de 9 années
1
Module 12 : Implémentation de procédures stockées
2
Présentation des procédures stockées Création, exécution et modification des procédures stockées Utilisation de paramètres dans les procédures stockées Exécution de procédures stockées étendues Traitement des messages d'erreur Performances Vue d'ensemble
3
Définition des procédures stockées Traitement initial des procédures stockées Traitement ultérieur des procédures stockées Avantages des procédures stockées Présentation des procédures stockées
4
Définition des procédures stockées Ensembles nommés d'instructions Transact-SQL Méthode permettant d'encapsuler les tâches répétitives Cinq types (système, locales, temporaires, distantes et étendues) Acceptation des paramètres d'entrée et des valeurs de renvoi Renvoi d'une valeur d'état de réussite ou d'échec
5
Traitement initial des procédures stockées Entrées dans les tables sysobjects et syscomments Entrées dans les tables sysobjects et syscomments Plan compilé en cache de procédure Plan compilé en cache de procédure Compilation Optimisation CréationCréation Exécution (première fois ou recompilation) recompilation) Analyse
6
Traitement ultérieur des procédures stockées Plan d'exécution extrait Élimination des plans inutilisés Plan de requêteContexte d'exécution SELECT * FROM dbo.member WHERE member_no = ? Connexion 1 8082 Connexion 2 Connexion 3 24 1003
7
Avantages des procédures stockées Partagent une logique d'application Protègent les détails du schéma de la base de données Fournissent des mécanismes de sécurité Améliorent les performances Réduisent le trafic sur le réseau
8
Création, exécution et modification des procédures stockées Création de procédures stockées Instructions pour la création de procédures stockées Exécution de procédures stockées Modification et suppression de procédures stockées
9
Création de procédures stockées Création dans la base de données actuelle à l'aide de l'instruction CREATE PROCEDURE Jusqu'à 32 niveaux d'imbrication Utilisation de sp_help pour afficher des informations Use library GO CREATE PROC dbo.overdue_books AS SELECT * FROM dbo.loan WHERE due_date < GETDATE() GO
10
Instructions pour la création de procédures stockées L'utilisateur dbo doit être propriétaire de tous les objets d'une base de données Une tâche par procédure stockée Créez, testez et déboguez la procédure stockée sur le serveur Évitez le préfixe sp_ dans les noms de procédures stockées Utilisez les mêmes paramètres de connexion pour toutes les procédures stockées Limitez l'utilisation des procédures stockées temporaires Ne supprimez jamais directement d'entrées dans la table système syscomments
11
Exécution de procédures stockées Exécution d'une procédure stockée en tant que telle Exécution d'une procédure stockée au sein d'une instruction INSERT EXEC overdue_books INSERT INTO customers EXEC employee_customer
12
Modification et suppression de procédures stockées Modification des procédures stockées Incluez toute option dans ALTER PROCEDURE N'affecte pas les procédures stockées imbriquées Suppression des procédures stockées ALTER PROC overdue_books AS SELECT CONVERT(char(8), due_date, 1) date_due, isbn, copy_no, SUBSTRING(title, 1, 30)title, member_no, lastname FROM OverdueView ORDER BY due_date ALTER PROC overdue_books AS SELECT CONVERT(char(8), due_date, 1) date_due, isbn, copy_no, SUBSTRING(title, 1, 30)title, member_no, lastname FROM OverdueView ORDER BY due_date
13
Atelier 12.1 : Création de procédures stockées
14
Utilisation de paramètres dans les procédures stockées Utilisation des paramètres d'entrée Exécution de procédures stockées avec des paramètres d'entrée Renvoi de valeurs avec des paramètres de sortie Recompilation explicite de procédures stockées
15
Utilisation des paramètres d'entrée Identifiez d'abord les valeurs manquantes ou invalides Définissez des valeurs par défaut appropriées CREATE PROC dbo.find_isbn @title longstring = null, @translation char(8) = 'Anglais' AS IF @title is null BEGIN PRINT "Veuillez spécifier un titre (complet ou partiel) et la langue" PRINT "find_isbn 'Oliver%', 'Japonais'"... CREATE PROC dbo.find_isbn @title longstring = null, @translation char(8) = 'Anglais' AS IF @title is null BEGIN PRINT "Veuillez spécifier un titre (complet ou partiel) et la langue" PRINT "find_isbn 'Oliver%', 'Japonais'"...
16
Exécution de procédures stockées avec des paramètres d'entrée Transmission de valeurs par référence Transmission de valeurs par position EXEC addadult 'LaBrie', 'Linda', null, 'Dogwood Drive', 'Sacramento', 'CA', '94203', null EXEC addadult @firstname = 'Linda', @lastname = 'LaBrie', @street = 'Dogwood Drive', @city = 'Sacramento', @state = 'CA', @zip = '94203' EXEC addadult @firstname = 'Linda', @lastname = 'LaBrie', @street = 'Dogwood Drive', @city = 'Sacramento', @state = 'CA', @zip = '94203'
17
Renvoi de valeurs avec des paramètres de sortie CREATE PROCEDURE dbo.mathtutor @m1 smallint, @m2 smallint, @result smallint OUTPUT AS SET @result = @m1 * @m2 DECLARE @answer smallint EXECUTE mathtutor 5, 6, @answer OUTPUT SELECT 'Le résultat est : ', @answer Le résultat est : 30 CREATE PROCEDURE dbo.mathtutor @m1 smallint, @m2 smallint, @result smallint OUTPUT AS SET @result = @m1 * @m2 DECLARE @answer smallint EXECUTE mathtutor 5, 6, @answer OUTPUT SELECT 'Le résultat est : ', @answer Le résultat est : 30 Résultats de la procédure stockée Résultats de la procédure stockée Exécution de la procédure stockée Exécution de la procédure stockée Création de la procédure stockée Création de la procédure stockée
18
Recompilation explicite de procédures stockées Recompilez lorsque Les procédures stockées renvoient des jeux de résultats extrêmement variés Un nouvel index est ajouté dans une table sous-jacente La valeur du paramètre est atypique Recompilez à l'aide des instructions CREATE PROCEDURE [WITH RECOMPILE] EXECUTE [WITH RECOMPILE] sp_recompile
19
Exécution de procédures stockées étendues Sont programmées à l'aide de l'API ODS Peuvent inclure des fonctions C et C++ Peuvent contenir plusieurs fonctions Peuvent être appelées à partir d'un client ou de SQL Server Ne peuvent être ajoutées que dans la base master EXEC master..xp_cmdshell 'dir c:\mssql7'
20
Traitement des messages d'erreur L'instruction RETURN permet de quitter sans conditions une requête ou une procédure La procédure sp_addmessage crée des messages d'erreur personnalisés La fonction système @@error contient le numéro d'erreur de la dernière instruction Transact-SQL exécutée L'instruction RAISERROR Renvoie un message d'erreur défini par l'utilisateur Définit un indicateur système pour consigner l'erreur
21
Démonstration : Traitement des messages d'erreur
22
Performances Utilisez l'Analyseur de performances SQL Server SQL Server : Gestionnaire de cache Statistiques de SQL Utilisez le Générateur de profils SQL Server Pour surveiller les événements Pour tester chaque instruction d'une procédure stockée
23
Conseils pratiques Concevez une procédure stockée par tâche Effectuez la vérification d'erreur des tâches et de la logique d'entreprise avant de commencer les transactions Vérifiez tous les paramètres d'entrée au début de chaque procédure stockée Vérifiez tous les paramètres d'entrée au début de chaque procédure stockée Utilisez les mêmes paramètres de connexion pour toutes les procédures stockées Pour dissimuler le texte des procédures stockées, activez l'option WITH ENCRYPTION
24
Atelier 12.2 : Création de procédures stockées avec des paramètres
25
Contrôle des acquis Présentation des procédures stockées Création, exécution et modification des procédures stockées Utilisation de paramètres dans les procédures stockées Exécution de procédures stockées étendues Traitement des messages d'erreur Performances
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.