sql-server - net - web service con acceso a sql server
SQL Server: uso de la integraciĆ³n de CLR para consumir un servicio web (3)
Hay algunos tutoriales en la web que describen cómo consumir un servicio web utilizando la integración CLR de SQL Server 2005. Para la mayoría, el proceso parece bastante intrincado. Me he encontrado con varios problemas, incluida la necesidad de cambiar el nivel de confianza de mi base de datos, y el uso de la herramienta sgen para crear un ensamblado XmlSerializer estático; y todavía no lo he hecho funcionar bien ... (estoy seguro de que solo necesito ponerle un poco más de tiempo y energía)
¿Cuáles son las implicaciones de seguridad, rendimiento y mantenimiento al ir a este tipo de arquitectura? Es probable que este sea un proceso bastante utilizado, y la facilidad de mantenimiento es relativamente importante.
Tengo libertad para elegir si integrar esto en SQL Server como una UDF, o hacer que sea una biblioteca .NET independiente para aplicaciones de consola / web. ¿Vale la pena la integración CLR de SQL con ensamblajes externos?
Creo que ha respondido a su propia pregunta, personalmente encuentro que cualquier cosa que llame a WebService es más que probable que exista fuera de SQL Server. Las complicaciones, los niveles de confianza elevados y, como mencionó, el proceso enrevesado general hace que sea una solución difícil de documentar y difícil de mantener.
He estado haciendo clr procedimientos que llama a los servicios web tanto en Exchange y AD y estoy de acuerdo con las publicaciones anteriores. Funciona, pero rápidamente nos topamos con problemas de falta de memoria debido a la manera especial en que se maneja la memoria en CLR dentro del servidor sql. Como se puede imaginar, el rendimiento está bien para pequeñas consultas, pero no escala en absoluto.
En general, el rendimiento de su base de datos determina el rendimiento de su aplicación y creo que poner esa lógica en su base de datos es un no-no si no tiene control total sobre lo que está haciendo.
Use CLR para manipulaciones de texto simples y otros cálculos que no dependen de recursos externos.
La respuesta corta es, no, SQL CLR Integration probablemente no valga la pena.
La respuesta más larga tiene varios puntos, comenzando con la programación de CLR en la base de datos. Es una buena herramienta, cuando se usa correctamente, pero aumenta el consumo de memoria y puede provocar problemas de rendimiento si no se realiza correctamente. Lo uso en mi base de datos para una funcionalidad muy especializada, como agregar la capacidad de RegEx, pero se usa con moderación, con un código bien probado para evitar que surjan tantos problemas como sea posible.
Un segundo es que, como señaló, debe modificar la seguridad y abrir riesgos potenciales.
Use una aplicación independiente para cargar los datos en su servidor. Tendrás más control, menos riesgos y mucho más tiempo para hacerlo.