martes, enero 11, 2005

SQL 2005 CLR

El día de ayer leyendo la revista VSM del mes de diciembre, entre los artículos encontre uno llamado "Build SQL CLR Objects With .NET", el cual explica como utilizar .NET dentro de SQL Server 2005, lo ejemplos son muy sencillo y simplemente se limitan a crear triggers, procedimientos y funciones definidas por los usuarios.

Esta funcionalidad realmente no es nada nuevo, Oracle desde hace ya algunos años permite hacer lo mismo utilizando Java, y el mismo MSSQL y Oracle por mucho tiempo han permitido el hacer llamadas desde la base de datos a funciones definidas en C y C++.

Esta funcionalidad realmente me parece muy interesante ya que proporciona la oportunidad de hacer cosas dentro de la base de datos que normalmente con el lenguaje SQL - en sus diferentes implementaciones (T-SQL, PL/SQL, PGSQL, etc.) - es imposible, por ejemplo llamar un WebService, que envíe o reciba información desde la base de datos sin tener que depender de un programa externo para eso, pero también abre la posibilidad para cometer errores graves que perjudiquen el rendimiento de una aplicación.
Por ejemplo, el que como programadores de .NET evitemos el SQL - porque no nos gusta, no estamos a gusto con el, o no lo entendemos -, y lo reemplazamos para manipular grandes volúmenes datos con C# o VB.NET, lenguajes no diseñados para manipular datos, ya que solo nos permiten manejar un registro a la vez - mediante ciclos for o while -, en cambio el SQL nos permite manejar un grupo de registros y afectarlos todos juntos a un mismo tiempo, lo cual definitivamente es mas eficiente.

Básicamente mi comentario se reduce a que hay utilizar las herramientas correctas para cada trabajo, si nuestra tarea es manipular grandes volúmenes de datos, hay que utilizar un lenguaje diseñado para manejar datos eficientemente y nada mas; si necesitamos hacer algo mas que solo manipular los datos - comunicarnos con otra aplicación, sistema operativo, algún dispositivo en la red, etc. -, entonces pensar en aprovechar la oportunidad de crear procedimientos y/o funciones en .NET para el SQL CLR.

3 comentarios:

Eduardo dijo...

En la plática de Whidbey y Yukon que dio Carlos Alexei en el TI@mericas pasado nos mostró eso, como usar .Net dentro de la base de datos. De hecho puedes hasta llamar webservices desde la misma base de datos, lo cual me parece muy padre.

Carlos Heli dijo...

Tus comentarios me parecen muy utiles .. pero me dejan una serie de dudas respecto a lo que necesito que ene escencia es poder extraer un grupo de datos de no mas de 100 filas de una tabla que puede tener un millon de filas y recorrerlas una por una puede ser en un arreglo.. Crees que podria serme util usar funciones clr ya probe con cursores y el resultado es desastroso .. agradezco tus comentarios

Mario Alberto Chavez dijo...

Carlos;
Si la cuestion es manipular datos, yo dejaria el CLR como la ultima opcion, la primera siempre va a ser T-SQL.
Si quieres te puedo auydar a solucionar tu problema, solo enviame mas informacion a: mario.chavez(arroba)gmail(punto com)