permettra en effet de mieux trouver et corréler différents éléments de code dans une grande implémentation
de base de données.
Le code géré est plus efficace que Transact-SQL pour le traitement des chiffres et la gestion d'une logique
d'exécution complexe. Il offre une prise en charge étendue pour le traitement des chaînes, des expressions
régulières, etc. Autre avantage : les fonctionnalités disponibles dans la bibliothèque de classes .NET Framework
vous procurent désormais un accès total à des milliers de classes et de routines prédéfinies, et ce à partir de
n'importe quelle procédure stockée, déclencheur ou fonction définie par l'utilisateur. Des fonctionnalités aussi
variées que fonction améliorées de traitement des chaînes, fonctions mathématiques, opérations de date, accès
aux ressources système, algorithmes de chiffrement avancés, accès aux fichiers, traitement des images et
manipulation des données XML vous sont facilement accessibles à partir des procédures stockées gérées,
fonctions, déclencheurs et agrégations.
L'un des principaux avantages du code géré est la sécurité de type. Avant l'exécution du code géré, le CLR
effectue plusieurs contrôles au cours d'un processus dit de « vérification », afin de s'assurer qu'il peut être
exécuté sans risque. Ainsi, par exemple, le CLR vérifie le code pour éviter toute lecture dans la mémoire où
aucune écriture n'a été effectuée.
Choix entre Transact-SQL et le code géré
Dorénavant, pour écrire des procédures stockées, des déclencheurs et des fonctions définies par l'utilisateur,
vous allez être confronté à un choix : utiliser soit le langage traditionnel Transact-SQL soit un langage de
programmation qui soit compatible avec .NET Framework, comme Visual Basic .NET ou C#. Votre décision
dépendra du cas précis qui se présentera alors ; dans certaines situations, vous devrez utiliser Transact-SQL, et
dans d'autres le code géré.
Transact-SQL est mieux adapté lorsque le code effectue principalement un accès aux données avec peu ou pas
de logique procédurale. Les langages de programmation qui sont compatibles avec .NET Framework
conviennent mieux aux fonctions et procédures à fort pourcentage de calcul qui se caractérisent par une
logique complexe, ou pour les cas où vous voulez tirer parti de la bibliothèque de classes .NET Framework.
L'emplacement du code est également important. À l'instar du Transact-SQL, le code géré s'exécute sur le
serveur. Cela rapproche les fonctionnalités et les données et vous permet de tirer pleinement parti de la
puissance de traitement du serveur. Autre avantage : le trafic entre les données et la couche intermédiaire est
allégé. Par la simple exécution des calculs à proximité des données, cette méthode peut être particulièrement
avantageuse pour un système dépendant des E/S. Les fonctions CLR bénéficient également du processeur de
requête SQL Server, qui peut paralléliser et optimiser l'exécution. En revanche, vous pouvez préférer éviter de
placer des tâches à fort taux d'utilisation processeur sur votre serveur de base de données. La plupart des
clients étant aujourd'hui très puissants, vous profiterez de cette puissance de traitement en plaçant autant de
code que possible sur le client. Il n'existe pas de réponse universelle.
Services Web