¿Cuál es la mejor columna para almacenar XML en una base de datos Oracle?
Pregunta
Estoy buscando la mejor manera de almacenar XMLs en una base de datos Oracle. Actualmente se utiliza una columna de tipo BLOB, pero estoy empujando para mover esta columna a un XMLType o un esquema de columna basada XMLType. Acabo de encontrar este artículo XML: Para CLOB o objeto? de Oracle y leí pero no he tomado una decisión todavía.
Así que nadie tiene experimentó esta misma pregunta antes? También la idea es que el XML se fue a buscar por completo en un cliente Flash a través de un servidor Red5, así que lo que estoy buscando aquí es el mejor rendimiento. Por lo que veo en los datos que proporcionan cargas CLOB más rápido en la base de datos, pero el XMLSchema basado es más rápido para la recuperación.
Gracias, Joaquín.
Solución
Trabajar con objetos en Oracle implica múltiples cambios de contexto SQL/PLSQL
que pueden afectar al rendimiento.
Si usted no hace nada con XML
en el lado de Oracle, a continuación, mantener en tan LOBs
.
"Excelente rendimiento LMD" en la lista no es, um, una exageración (cuando se habla de poner / recuperar XML
sin procesar, i. E. Flujo de bytes)
De hecho, si el servidor procesará menos de consultas 10
por segundo, difícilmente notará ninguna diferencia en absoluto.
Otros consejos
Si se va a seleccionar o actualizar sólo partes del XML de objeto de almacenamiento relacional es el camino a seguir. Las únicas desventajas es que desde el xml se tritura internamente, espacios en blanco y el formato se elimina, pero a medida que el documento dice que todavía se ajusta a DOM.
Si va a utilizar la base de datos como dispositivo de almacenamiento única y toda la manipulación de XML que va a pasar en el lado del cliente ir con la opción de almacenamiento de LOB.
Si está utilizando 11g, que ahora tiene un XMLIndex lo que mejora tremendamente el rendimiento al actualizar / Selección de campos XMLType almacenados con la opción de LOB.