Motor 2005 de la base de datos del servidor de CLR
que entiende y del SQL
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.