Je prévois d'implémenter des déclencheurs sur toutes mes instructions DML pour la gestion des journaux. Alors s'il vous plaît identifier s'il y a un problème ou des inconvénients à le faire.Identifier certains des inconvénients de l'implémentation de SQL Server triggers?
Répondre
Je pense que ce blog MVP SQL Server post résume le mieux:
- Triggers sont difficiles à trouver dans SSMS
- exécution de déclenchement ne peut pas être vu par l'application client
- La logique de déclenchement peut être difficile à piste
- Les Héritiers de votre code pourrait ne pas réaliser les déclencheurs ont été mis en œuvre
- Triggers sont connus pour inhiber performances
Brent Ozar appelle également les déclencheurs comme son # 10 délinquant dans The Top Ten Developer Mistakes That Won't Scale
Mais dans le esprit d'être équilibré, ce blog en énumère quelques-uns benefits:
- Capacité d'appliquer plus compliqué logique métier
- peut utiliser comme d'autres moyens pour tirer une tâche planifiée
- Utile pour vérifier tout changement dans une table , quelle que soit la façon dont il est arrivé (à savoir procédure stockée, client application, requête ad hoc)
Vous doit utiliser try/catch afin que leur comportement est plus logique
C'est, ils seront par ailleurs annuler votre lot et les instructions suivantes ne sont pas exécutés (après un INSERT dire que est annulée dans la gâchette) . Bien que vous vous attendiez à cela en cas d'échec, cela peut être douloureux. Cependant, TRY/CATCh
Sinon, ils peuvent attraper les gens, par exemple, quand vous essayez de faire un chargement en vrac et oubliez qu'ils sont là. Mais ce sont des fonctionnalités SQL parfaitement valides qui peuvent être utilisées de manière appropriée.
Un autre gotcha est où un idiot veut envoyer des emails par ligne dans un déclencheur ou sinon faire une boucle ou un tel muppetry.
Et le lien omniprésent pour Erland Sommarskog's article on error handling
- 1. Sql Server Triggers
- 2. Inconvénients du chiffrement d'objet SQL Server 2005+?
- 3. identifier les procédures stockées et les triggers qui porte une chaîne particulière dans le serveur SQL
- 4. Triggers SQL dans Oracle
- 5. Raising errors in After Triggers Sql Server 2005
- 6. SQL 2000 - Enterprise Manager & Triggers
- 7. Comment identifier un identificateur unique vide dans SQL Server 2005?
- 8. Inconvénients lors de l'utilisation de dotConnect pour Oracle par rapport à SQL Server?
- 9. Triggers imbriqués de UpdatePanel
- 10. Puis-je forcer certains paramètres par utilisateur dans SQL Server?
- 11. Inconvénients (le cas échéant) Avec SQL Server 2005 XML Type de données
- 12. Vues de recherche SQL Server 2005 pour certains objets de base de données
- 13. Échec de l'exportation des données SQL Server
- 14. Nom des colonnes de variable SQL Server?
- 15. SQL Server: Comparaison des performances de l'index
- 16. Supprimer des packages DTS de SQL Server?
- 17. Fusionner des bases de données SQL Server
- 18. Modèle de gestion des erreurs SQL Server
- 19. Détérioration des performances de SQL Server
- 20. SQL pour identifier les valeurs hors tolérance
- 21. Deadlocks SQL Server (SQL Server 2000)
- 22. Avantages/inconvénients des environnements de script intégrés?
- 23. Inconvénients des fonctions de première classe
- 24. Publipostage avec SQL Server
- 25. SQL Server 2008: Standard ou SQL Express
- 26. SQL Server: Essayez de supprimer
- 27. Documentation de bases de données relationnelles (tables, vues, fonctions, triggers)
- 28. Configurer VS2008 pour créer des bases de données SQL Server au lieu de SQL Server Express?
- 29. Erreur de SQL Server
Quels types d'inconvénients recherchez-vous? Performance? Maintenabilité? Autre? – Oded
Fondamentalement, je suis inquiet au sujet de la charge, car l'application a une base de données centralisée et près de 100 sites basés sur CMS seront en cours d'exécution. –