Motor 2005 de la base de datos del servidor de CLR que entiende y del SQL

Dutch French Spanish Portuguese Italian German Japanese Chinese Korean Russian Arabic Bookmark and Share this Article Original English article
  

La integración del CLR con el servidor del SQL amplía la capacidad del servidor del SQL de varias maneras importantes. Mientras que T-SQL, los datos existentes tienen acceso y lengua de la manipulación, se satisface bien para las operaciones fijar-orientadas del acceso de los datos, él también tiene limitaciones. Diseñó más que hace una década, T-SQL es una lengua procesal, no una lengua orientada al objeto. La integración del CLR con el servidor 2005 del SQL trae con ella la capacidad de crear objetos de la base de datos usando idiomas orientadas al objeto modernas como VB.NET y C #. mientras que estas idiomas no tienen la misma naturaleza fijar-orientada fuerte que T-SQL, ellos apoyan lógica compleja, tienen capacidades mejores del cómputo, proporcionan el acceso a los recursos externos, facilitan la reutilización del código, y tienen un ambiente de primera clase del desarrollo que proporcione mucho más energía que el viejo analizador de la pregunta.

La integración del NET CLR con el servidor 2005 del SQL permite el desarrollo de procedimientos almacenados, de funciones definidas por el usario, de disparadores, de agregados, y de tipos definidos por el usario usando cualesquiera de las idiomas del NET. La integración del NET CLR con el servidor 2005 del SQL es más que apenas piel profundamente. En hecho, el motor 2005 de la base de datos del servidor del SQL recibe el en-proceso de CLR. Usando un sistema de APIs, el motor del servidor del SQL realiza a toda la gerencia de la memoria para los programas recibidos de CLR.

El código manejado tiene acceso a la base de datos usando ADO.NET conjuntamente con el abastecedor nuevo de los datos del NET del servidor del SQL. Un nuevo objeto del servidor del SQL llamado una asamblea es la unidad del despliegue para los objetos del NET con la base de datos. Para crear objetos de la base de datos de CLR, usted debe primero crear un DLL usando el estudio visual 2005. Entonces usted importa ese DLL en el servidor del SQL como asamblea. Finalmente, usted liga a esa asamblea a un objeto de la base de datos tal como un procedimiento almacenado o un disparador. En la sección siguiente usted’ll consigue una mirada más detallada en cómo usted utiliza realmente las nuevas características de CLR encontradas en el servidor 2005 del SQL.

Arquitectura de CLR

El marco CLR del NET se integra muy firmemente con el motor 2005 de la base de datos del servidor del SQL. En hecho, el motor de la base de datos del servidor del SQL recibe el CLR. Este nivel apretado de la integración da a servidor del SQL 2005 varias ventajas distintas sobre la integración del NET que’s proporcionó por DB2 y oráculo.

Una base de datos del servidor del SQL utiliza un API especial o capa del recibimiento para comunicarse con el CLR y para interconectar el CLR con el sistema operativo de Windows. El recibimiento del CLR dentro de la base de datos del servidor del SQL da a motor de la base de datos del servidor del SQL la capacidad de controlar varios aspectos importantes del CLR, incluyendo

Gerencia de la memoria

El roscar

Colección de la basura

La puesta en práctica ambas de DB2 y del oráculo utiliza el CLR como proceso externo, que significa que los CLR y el motor ambos de la base de datos compiten para los recursos de sistema. El recibimiento del en-proceso del servidor’2005 s del SQL del CLR proporciona varias ventajas importantes sobre la puesta en práctica externa usada por Oracle o DB2. Primero, el recibimiento del en-proceso permite al servidor del SQL controlar la ejecución del CLR, poniendo funciones esenciales tales como gerencia de la memoria, colección de la basura, y roscando bajo control del motor de la base de datos del servidor del SQL. En una puesta en práctica externa el CLR manejará estas cosas independientemente. El motor de la base de datos tiene una vista mejor de los requisitos del sistema en su totalidad y puede manejar memoria y rosca mejor que el CLR puede hacer en sus el propios. En el extremo, el recibimiento del en-proceso de CLR proporcionará un funcionamiento y un scalability mejores.

Permitir La Ayuda de CLR

Por el defecto, la ayuda de CLR en el motor de la base de datos del servidor del SQL es dada vuelta apagado. Esto se asegura de que las instalaciones de la actualización del servidor del SQL no introduzcan inintencionalmente nueva funcionalidad sin la implicación explícita del administrador. Para permitir la ayuda del servidor’s CLR del SQL, usted necesita utilizar las opciones avanzadas del procedimiento almacenado’sistema del sp_configure del servidor s del SQL, según lo demostrado en el listado siguiente:

las opciones avanzadas demostración del sp_configure ', 1
VAN CONFIGURAN DE NUEVO VAN sp_configure ' clr permitido ', 1 VAN 
CONFIGURAN DE NUEVO VAN

Componentes Del Objeto De la Base de datos de CLR

A crear objetos de la base de datos del NET, usted comienza escribiendo código manejado en de las idiomas del NET, tales como VB, C #, o C++ manejado, y lo compila en un DLL del NET (biblioteca de acoplamiento dinámica). La manera más común de hacer esto sería utilizar el estudio visual 2005 para crear un nuevo proyecto del servidor del SQL y después para construir ese proyecto, que crea el DLL. Alternativomente, usted crea el código del NET usando su redactor de la opción y después compilando el código en un DLL del NET usando el marco SDK del NET. ADO.NET es el middleware que conecta el DLL de CLR con la base de datos del servidor del SQL. Una vez que se haya creado el DLL del NET, usted necesita colocar ese DLL con el servidor del SQL, creando un nuevo objeto de la base de datos del servidor del SQL llamado una asamblea. El montaje esencialmente encapsula el DLL del NET. Usted entonces crea un nuevo objeto de la base de datos tal como un procedimiento almacenado o un disparador esos puntos al montaje del servidor del SQL.

Abastecedor De los Datos del NET Del Servidor del Sql

Si usted’re familiar con ADO.NET, usted puede preguntarse exactamente cómo los objetos de la base de datos de CLR conectan con la base de datos. Después de todo, ADO.NET hace su conexión de la base de datos usando a abastecedores cliente-basados de los datos del NET tales como el abastecedor de los datos del marco del NET para el servidor del SQL, que conecta con bibliotecas networked. Mientras que ese’s grande para un uso del cliente, pasando a través de la ayuda’del establecimiento de una red del sistema s para un isn t de la llamada’de base de datos el modo más eficiente para el código ese’s que funciona directamente en el servidor. Para tratar esta edición, Microsoft creó el abastecedor nuevo de los datos del NET del servidor del SQL. El abastecedor de los datos del NET del servidor del SQL establece una conexión de la en-memoria a la base de datos del servidor del SQL.

Asambleas

Después de que la codificación para el objeto de CLR se haya terminado, usted puede utilizar ese código para crear un montaje del servidor del SQL. Si usted’re usar el estudio visual 2005, entonces usted puede seleccionar simplemente la opción del desplegar, que tomará el cuidado de ambos que crean el montaje del servidor del SQL así como crear el objeto de la base de datos de la blanco. Si usted’re no usar el estudio visual 2005 o usted desea realizar el proceso del despliegue manualmente, entonces usted necesita copiar el DLL del NET a una localización del almacenaje común de su opción. Entonces, usando el estudio de la gerencia del servidor del SQL, usted puede ejecutar un T-SQL CREA la declaración de la ASAMBLEA que se refiere a la localización del DLL del NET, como usted puede ver en el listado siguiente:

CREE LA ASAMBLEA MyCLRDLL del objeto de la base de datos 
del código de ' \\SERVERNAME\CodeLibrary\MyCLRDLL.dll ' usando 
código manejado y el complie al DLL del registro del DLL con usar del
servidor del solenoide

El comando de la ASAMBLEA del CREAR toma un parámetro que contenga la trayectoria al DLL que será cargado en el servidor del SQL. Esto puede ser una trayectoria local, pero será más a menudo una trayectoria a una parte networked del archivo. Cuando ejecutan a la ASAMBLEA del CREAR, el DLL se copia en la base de datos principal. Si una asamblea es actualizada o se desaprueba, después usted puede quitar a la asamblea usando el comando de la ASAMBLEA de la GOTA como sigue:

ASAMBLEA MyCLRDLL de la GOTA

Porque almacenan a las asambleas en la base de datos, cuando el código de fuente para esa asamblea se modifica y es la asamblea recompiled, la asamblea debe primero ser caída de la base de datos usando el comando de la ASAMBLEA de la GOTA y en seguida ser recargada usando el comando de la ASAMBLEA del CREAR antes de que las actualizaciones sean reflejadas en los objetos de la base de datos del servidor del SQL.

Usted puede utilizar la opinión de sys.assemblies para visión a las asambleas que se han agregado al servidor 2005 del SQL según lo demostrado aquí:

SELECCIONE * de sys.assemblies

Puesto que crean a las asambleas usando archivos externos, usted puede también desear visión los archivos que fueron utilizados para crear a esas asambleas. Usted puede hacer eso que usa la opinión de los assembly_files del sistema según lo demostrado aquí:

SELECCIONE * de sys.assembly_files

Crear Objetos De la Base de datos de CLR

Después de que se cree el montaje del servidor del SQL, usted puede entonces utilizar el estudio de la gerencia del servidor del SQL para ejecutar un T-SQL CREA PROCEDIMIENTO, CREA DISPARADOR, CREA LA FUNCIÓN, CREA EL TIPO, o CREA la declaración AGREGADA que utiliza la cláusula CONOCIDA del external para señalar a la asamblea a que usted creó anterior.

Cuando crean a la asamblea, el DLL se copia en la base de datos del servidor del SQL de la blanco y colocan a la asamblea. El código siguiente ilustra crear el procedimiento almacenado MyCLRProc que utiliza a asamblea de MyCLRDLL:

CREE EL PROCEDIMIENTO MyCLRProc COMO External 
MyCLRDLL.StoredProcedures.MyCLRProc CONOCIDO

La cláusula CONOCIDA del external es nueva al servidor 2005 del SQL. Aquí la cláusula CONOCIDA del external especifica que el procedimiento almacenado MyCLRProc será creado usando un montaje del servidor del SQL. El DLL que se encapsula en el montaje del servidor del SQL puede contener clases múltiples y métodos; la declaración CONOCIDA del external utiliza el sintaxis siguiente para identificar la clase y el método correctos para utilizar de la asamblea:

Asamblea Name.ClassName.MethodName

En el caso del ejemplo precedente, nombran a la asamblea registrada MyCLRDLL. La clase dentro de la asamblea es StoredProcedures, y el método dentro de esa clase que sea ejecutada es MyCLRProc.

esto es un artículo agregado por Maud Q. Vincent


Negación: Nuestro Web site no es responsable de la información contenida por este artículo. Este artículo de ninguna manera refleja las vistas, las opiniones, los pensamientos o la creencia del personal del directorio de los artículos.

Aviso de la traducción: El artículo "el motor 2005 de la base de datos del servidor de CLR que entendía y del SQL" fue traducido usando un servicio de traducción automatizado. Nos disculpamos sinceramente por cualquier error de la traducción que ocurriera. Gracias por entender.


Online: 1799 users browsing the articles directory