La fonction du sommeil chez Oracle est en réalité une procédure que vous pouvez inclure dans une fonction plutôt qu'une fonction elle-même . Confusion se produit souvent en raison des similitudes frappantes entre les deux, avec la seule différence étant que la procédure suit les instructions qui ne retournent pas toujours une valeur , tandis qu'une fonction doit toujours se termine avec une valeur de retour . Ajout d'instructions PL /SQL qui mettent une base de données Oracle " dormir " est une tâche administrative commune et en fonction de vos préférences, les utilisateurs finaux peuvent également utiliser une option de sommeil. Identification
Mettre une base de données Oracle pour dormir signifie exactement ce qu'il dit . Les déclarations que vous écrivez provoquent la base de données de suspendre les opérations normales ou arrêter de travailler , parfois pour aussi peu que quelques centièmes de seconde . Par exemple , les utilisateurs finaux peuvent ajouter une procédure de sommeil pour mettre en pause la base de données avant qu'il insère de nouvelles informations dans un tableau . Les administrateurs de base de données peuvent utiliser une fonction de sommeil de dire la base de données d'attendre un laps de temps avant de tenter de relancer une action en panne, ou pour mettre en pause la base de données pendant qu'il effectue une sauvegarde de routine.
Process < br > Photos
Oracle vous offre trois options si vous êtes un administrateur et une option si vous êtes un utilisateur final pour le codage et l'utilisation de la procédure de sommeil dans les états PL /SQL. Les trois commandes administratives sont dbms_backup_restore , dbms_drs et dbms_lock et la commande de l'utilisateur final est user_lock . L'option dbms_backup_restore arrête la base de données lors de la sauvegarde et de restauration , dbms_drs - ou planification des ressources distribuées - peut suspendre une séance au cours de l'optimisation des ressources et les deux SGBD et user_lock sont utiles pour fournir usage exclusif d' une machine ou d'un terminal pour un temps limité spécifique , l'application d'une délai pour une read_lock et pour des applications de synchronisation .
syntaxe
Alors que la commande réelle pour chaque diffère selon l'option que vous choisissez, le format général de la syntaxe pour rédiger une procédure de sommeil commence par créer la procédure en utilisant l'instruction " CREATE PROCEDURE_sleep [ ( sleepTime eN ENTIER ) ] EST . " la partie de début de l'instruction crée la procédure et de l'information entre crochets identifie ses paramètres, qui dans ce cas est le nom de la procédure , l' eN identifiant qui indique à Oracle la procédure peut également être utilisé dans une fonction et entier qui définit le type de données. Démarrez la procédure avec une simple déclaration "BEGIN" et sur la ligne suivante identifier l'option et ses paramètres, tels que SYS.DBMS_BACKUP_RESTORE.SLEEP ( sleepTime_in_seconds = 5,01) avant de terminer la procédure avec l'instruction END:
CREATE PROCEDURE_sleep [ ( sleepTime_in_minutes EN ENTIER ) ] ISBEGINSYS.DBMS_BACKUP_RESTORE.SLEEP ( sleepTime_in_minutes = 15.01 ) ; END ;/
Considérations
Quand il s'agit d'accorder les droits d'exécution à la fin utilisateurs pour la commande user_lock.sleep , de comprendre que non seulement les utilisateurs finaux ont la possibilité d'écrire une procédure de sommeil, mais aussi toutes les procédures de verrouillage associés à cette commande. En outre, la taille et la configuration de votre base de données Oracle peuvent vous empêcher d'accorder les droits d'exécution à tous les utilisateurs finaux. Pour cette raison, Oracle recommande l'octroi de privilèges de verrouillage en fonction des besoins ou des rôles au sein de l' entreprise .