Estoy analizando las opciones para la capa de la base de datos en mi aplicación. He encontrado que hibernar es una opción muy popular, sin embargo, pocos amigos dijeron que es mejor usar procedimientos/funciones almacenados en lugar de ir a hibernar. Hibernate tiene problemas de rendimiento en comparación con estos objetos de base de datos. Hay alguna otra opción. Mi aplicación puede tener un gran volumen de transacciones, por lo que debe seleccionar una opción que proporcione un mejor rendimiento. ¿Alguien puede aclarar esto y ayudarme a elegir la mejor opción? Estoy usando spring framework como núcleo y richfaces para capa web.hibernate v/s procedimiento almacenado o funciones rendimiento
Respuesta
Mi aplicación puede tener muy alta volumen de transacciones así que tienes que seleccionar una opción que le da una mejor rendimiento
Bueno, si el rendimiento es su única (o principal) punto de referencia, entonces su paquetes Oracle difíciles de superar en el servidor db. Sin embargo, su empresa debe considerar las fortalezas de sus desarrolladores. ¿Es esta una tienda con desarrolladores Java en su mayoría y 1 o 2 desarrolladores de Oracle solos y 1 DBA? Si es así, no desarrolle su sistema de middleware en los paquetes de Oracle, probablemente tenga algún servicio XML escrito en Java usando Hibernate. No será tan rápido bajo carga, pero será más fácil de mantener y crecer para SU empresa.
Nota: Estoy predispuesto a utilizar las tecnologías de Oracle, pero ahí es donde están mis puntos fuertes.
Como último decidimos ir a jdbc puro y procedimiento en lugar de hibernar. Esta decisión se basó en algunos informes comparativos encontrados en Internet y en el hecho de que buscamos un alto rendimiento en lugar de la comodidad del desarrollo. Gracias tbone. – Amit
¡cosa segura! Además, probablemente esté al tanto, pero solo sea proactivo y configure estándares de codificación, convenciones de nomenclatura, procedimientos de promoción de códigos, requisitos de prueba de unidades, estándares de registro/excepción, etc. desde el principio.Esto parece ser más conocido/seguido en las tiendas Java por cualquier razón, pero no tanto con un grupo de desarrolladores de bases de datos. Simplemente establezca las reglas/marco desde el principio. – tbone
Gracias por la sugerencia. ¿Tienes algo sobre eso? Estamos usando el servidor MS SQL. Creo que estas pautas serán las mismas para cualquier DB. Tenemos a alguien para administrar las secuencias de comandos de la base de datos, pero aún queremos asegurarnos de que las cosas vayan bien desde el principio. – Amit
La mejor opción es que lo descubrirás. A veces, usar cualquier ORM está perfectamente bien y lo apoyará, otras instancias no es la mejor opción. Creo que la verdadera respuesta es que depende de lo que está haciendo, cómo lo está haciendo y la calidad del diseño del producto. Todos ellos hacen la diferencia y pueden dictar una falla o éxito.
En pocas palabras, los absolutos son una política terrible - Usar la tecnología que funciona y corrige un problema. Si comienza a ser un problema, vuelva a evaluar.
Esto es bastante tarde, pero me gustaría agregar algunos puntos de uso de hibernación vs uso de procedimientos almacenados.
Desde una perspectiva de rendimiento creo que desde escribir un procedimiento almacenado significa que está más cerca de la base de datos, invariablemente resultaría en una salida más rápida si está escrita de manera eficiente. En consecuencia hibernate, ya que su trabajo en la base de datos no puede ser más rápido que la base de datos. La libertad de optimizar las consultas es algo que hibernate te roba y mientras hibernate puede generar muchas consultas óptimas, aún puede haber algunas oportunidades para una mejor optimización.
desarrolladores de hibernación Incluso pro confiesan que si está actualizando un gran conjunto de datos, es mejor usar un procedimiento en lugar de hacer varias llamadas con Hibernate través de la red.
Para resumir mejor utilizar procedimientos y funciones para un buen rendimiento
- 1. MySQL Procedimiento almacenado vs. consulta compleja
- 2. Rendimiento del procedimiento almacenado: ¿esto es SALVAJE?
- 3. Procedimiento almacenado al ejecutar otro procedimiento almacenado
- 4. hibernar y procedimiento almacenado
- 5. Medir con precisión el rendimiento del procedimiento almacenado
- 6. ¿Cómo se mide el rendimiento de un procedimiento almacenado?
- 7. Ejecutar un procedimiento almacenado dentro de un procedimiento almacenado
- 8. Cómo llamar a un procedimiento almacenado desde otro procedimiento almacenado?
- 9. Desaparición del procedimiento almacenado
- 10. Código fuente para el procedimiento almacenado específico o función
- 11. ¿El procedimiento almacenado más ejecutado?
- 12. Procedimiento almacenado NULL Parámetro
- 13. procedimiento almacenado devuelve varchar
- 14. Transacción de procedimiento almacenado
- 15. Procedimiento almacenado roto guardado
- 16. IF/ELSE Procedimiento almacenado
- 17. Procedimiento almacenado asincrónico Llamadas
- 18. Magento: Crear procedimiento almacenado
- 19. Funciones vs procedimientos almacenados
- 20. Llamar a un procedimiento almacenado en un procedimiento almacenado en MySQL
- 21. Buscar procedimiento almacenado por nombre
- 22. Suprimir transacción en procedimiento almacenado
- 23. procedimiento almacenado con resultados condicionales
- 24. método vs función vs procedimiento vs clase?
- 25. Función temporal o procedimiento almacenado en T-SQL
- 26. ¿Debo usar sp_executesql o EXEC para ejecutar un procedimiento almacenado?
- 27. Obtener los parámetros del procedimiento almacenado por C# o SQL?
- 28. Procedimiento almacenado consulta de eliminación
- 29. ¿Cómo programar un procedimiento almacenado?
- 30. Cómo guardar un procedimiento almacenado?
¿Es factible para que usted acaba de escribir unas pocas aplicaciones de pruebas sencillas utilizando los dos sistemas, para medir el rendimiento de ti mismo? –
Pensé, pero uno de los elementos en el rendimiento es el tamaño de la base de datos que podría simular. – Amit