|
Introdución
Estando tan próximo el lanzamiento oficial de las versiones 2005 de Visual Studio .NET y SQL Server en nuestro
país, este artículo pretende explorar una de las características más innovadoras de la próxima versión de SQL
Server: La Creación de Procedimientos Almacenados y Funciones en SQL Server utilizando los lenguajes del .NET
Framework
Desarrollo y Administración de Base de Datos
Si el trabajo que realizas combina actividades tanto de administración de base de datos como de desarrollo,
seguro que estas familiarizado con lo que es el CLR(Common Language Runtime) del Framework .NET, pero si en
tu trabajo solo desempeñas tareas de administración de base de datos quizás aún no lo estas. Seguramente
hasta ahora no le has prestado demasiada atención porque creías que esto solo era algo concerniente a los
desarrolladores, este concepto está tendiendo a cambiar ya que en las próximas versiones tanto de SQL Server
como de VS.net será importante y ventajoso comprender y saber utilizar de manera oportuna y eficiente el CLR
indistintamente del papel que desempeñes en tu trabajo.
La Nueva versión de SQL Server incluirá el CLR como parte del motor de SQL, esto lo podemos apreciar en la
siguiente figura:
C# y VB.net en SQL Server
Cada vez el Visual Studio integra más herramientas que permiten la manipulación y la ejecución de distintas tareas
contra el servidor de base de datos, de igual manera en el próximo release de SQL Server, se tendrá un entorno mucho
más integrado y familiar para desarrolladores, para esto solo hay que ver la interfaz que posee, por ejemplo, el
Managment Studio de SQL 2005, es un entorno con muchas más funcionalidades para desarrolladores.
En SQL 2000 y en versiones previas podíamos crear los distintos objetos de base de datos tales como procedimientos
almacenados, funciones o triggers utilizando T-SQL, con la versión de SQL que será liberada este año, estaremos en
capacidad de crear estos y otros objetos ya no solo utilizando el T-SQL, sino también C# y VB.net. El SQL 2005 ha sido
creado, en una parte muy significativa, justamente con estos lenguajes.
SQL 2005 expone la funcionalidad del .NET framework permitiéndonos realizar, entre otras cosas, lo siguiente:
- Crear procedimientos almacenados y triggers utilizando C# o VB.net e invocar estos procedimientos de la misma
manera como se hace para los procedimientos T-SQL.
- Crear funciones basadas en CLR, ya sea en C# o VB.net e invocarlas de la misma manera como se hace para las f
unciones de T-SQL.
- Crear UDTs(Tipos Definidos por Usuario) basados en CLR y utilizarlos para definir tablas y reglas de negocio.
Procedimientos almacenados extendidos
En SQL 2000 y versiones previas se podía acceder a código externo mediante los llamados procedimientos
almacenados extendidos (extended procedures(xp), basados en C/C++), algunos de estos invocaban a DLLs
precompiladas. Esto es usado cuando se desea realizar tareas ciertamente complejas, como por ejemplo cálculos
matemáticos complejos, acceder a funcionalidad expuesta por el sistema operativo o realizar tareas que demanden
un fuerte trabajo de la CPU, es decir tareas en las cuales el T-SQL es insuficiente e incapaz de poder realizarlas por sí
solo.
El uso de los procedimientos almacenados extendidos tenía ciertas desventajas, el código que se ejecutaba tenía que
ser un código en el que el SQL Server confiara plenamente, y además el hecho de ser un código no administrado hacía
que estos se ejecutaran en el mismo espacio de memoria que el SQL Server, esto traía consigo el riesgo de ocasionar
algún error en el SQL Sever y hacer que este se colgara.
Digamos que los reemplazantes modernos de los xp son precisamente los Procedimientos basados en CLR.
Algunas situaciones en las que utilizar el CLR sería una buena alternativa a los ya clásicos procedimientos basados
en T-SQL, serían las siguientes:
- Reemplazando o ampliando la funcionalidad de extensos y complejos procedimientos almacenados, especialmente los
que realizan cálculos matemáticos complejos o fórmulas de negocio complejas.
- Procedimientos que necesitan acceder a algunas estructuras de datos externas que no tienen una interface tradicional
de acceso a datos. El uso del CLR permite interactuar directamente con la estructura de datos externa, algo que no
podría hacerse con el T-SQL. Por ejemplo se podría acceder a un archivo de MS Project para actualizar complejas
programaciones de tareas.
- Realizar algoritmos complejos. Por ejemplo algoritmos geográficos de mapeo.
- Realizar complejos cálculos de ingeniería.
Probablemente algunos desarrolladores hayan implementado procedimientos almacenados extendidos (xp) para
todos estos casos, sería una muy buena práctica reescribir todos estos, mediante los nuevos procedimientos basados
en CLR, esto ya sería código administrado.
Página 1 Página 2
|
|