¿Cuándo debo usar el tipo de datos XML en Microsoft SQL Server?
¿Cuándo debo usar el tipo de datos XML en Microsoft SQL Server?
Personalmente, nunca he usado el tipo de campo XML en SQL Server antes, y he hecho mucha programación de base de datos desde que agregaron esta función. Siempre me pareció que había una sobrecarga programática y de rendimiento al usar contenido XML en una base de datos de forma nativa. Honestamente pensé que era un truco, porque todos estaban en el tren XML en algún momento a principios de la década del 2000. "Oh, XML está de moda, así que vamos a agregarlo a SQL Server para que no veamos passe".
El mejor caso de negocios que puedo ver podría ser el registro de los mensajes de datos basados en XML que haya recibido, en los que quizás desee ver su estructura y sus datos, pero desea mantener la integridad del mensaje original por razones comerciales o legales. La sobrecarga puede ser demasiado grande para traducir el XML en una estructura de tabla, pero el uso de las capacidades XML en SQL Server podría reducir el costo de examinar los datos lo suficiente como para justificar su uso.
Probablemente haya docenas de otras razones por las que querría usarlo, pero francamente creo que debería considerar otros caminos hacia la felicidad antes de volverse loco con XML en SQL Server a menos que tenga razones comerciales muy específicas para hacerlo. Use un campo de varchar (max) o de texto si tiene más sentido.
Solo mi opinión, por supuesto :)
Solo he encontrado algunos escenarios en los que perseguiría activamente el uso del tipo de datos XML en SQL Server. Esto está fuera de mi cabeza, en orden de menos a más interesante:
Todo lo dicho, el 99% del tiempo, no tengo absolutamente ninguna necesidad de un campo XML al diseñar un esquema.
Las pocas veces que he visto el tipo de datos XML en el servidor SQL se ha usado básicamente como un campo que se ha consultado como cualquier otro en la base de datos, lo que puede tener muy malas implicaciones de rendimiento si tiene una gran la cantidad de datos. Hay una razón por la que se llama servidor SQL y no servidor XML. :-) Las consultas que van en contra del XML simplemente no son tan rápidas como hacer una consulta de selección regular.
Podría ver que se utiliza para almacenar XML que no se consulta mucho, sin embargo, digamos que se guarda el documento XML completo en un tipo de datos XML, pero que los campos (claves) de búsqueda se almacenan por separado con el documento XML. De esa manera, puede consultar su información más rápidamente y extraer el documento XML cuando llegue al punto en el que desea ver el documento completo. De hecho, tuve que volver atrás y hacer esto con varias aplicaciones en las que las personas han tratado de usar el tipo de datos XML como un campo muy consultado y los datos han crecido hasta el punto en que la consulta se ha vuelto demasiado lenta.
He utilizado campos de tipo XML principalmente para fines de registro relacionados con los servicios web de ASMX o los servicios WCF. Puede guardar la solicitud o los mensajes de respuesta.
La mayoría de las veces, guarda el XML en la base de datos para fines de referencia, no para su actividad comercial habitual (no lo consulte cada 5 segundos desde el código). Si lo hace, determine los campos que normalmente consulta o usa la mayor parte del tiempo y cree columnas separadas para ellos. De esa manera, cuando esté guardando el XML en la base de datos, puede extraer estos campos y guardarlos en sus columnas correspondientes. Más adelante, al recuperarlos, no tendría que consultar el documento XML, solo puede utilizar las columnas que creó para este fin.
He hecho algo similar al serializar datos de objetos a XML para almacenamiento. Esto elimina la carga de tener tablas, columnas y relaciones en su lugar para almacenar datos de objetos complejos. Se puede ayudar al proceso mediante el uso de un esquema que cumpla con el resultado XML, y las tablas de la base de datos se pueden usar para la metainformación sobre los objetos en cuestión. En mi caso, ¡expandir el esquema de la base de datos para acomodar el diseño del objeto sería una gran tarea!
Estos son los escenarios que vienen a la mente inmediatamente cuando se considera qué condiciones deberían existir para permitir campos de XML en el servidor SQL:
Lea otras preguntas en las etiquetas xml sql-server
y más El objetivo de utilizar un tipo de documento basado en XML en SQL Server es que permite una amplia gama de puntos de entrada de datos. También puede agregar varios documentos en varios tipos diferentes basados en XML que se pueden usar juntos, como a través del servicio ORM o desde documentos XML predeterminados predeterminados. Vea también una gran discusión sobre este tema en Service Monitor en los foros de SQL Server. <| Endoftext |> Por Lord BerfieldHaving acaba de perder el documental inicial, Richard... Lee mas