En igualdad de condiciones, y en la forma más simple, ¿cuál es más rápido?
1.) Una llamada a un método de servicio Web
2.) Una llamada a una base de datos¿Cuál es la diferencia de velocidad entre las llamadas al servicio web y la base de datos?
Por ejemplo, suponga que tiene un servicio web simple que sólo devuelve un entero que se calcula en el tiempo X. También tiene una base de datos que, cuando se consulta de la manera correcta, también toma X veces para calcular la respuesta. (De modo que el tiempo de cálculo de es el mismo en ambos casos) En ambos casos, suponga que la cantidad de datos en ambas direcciones es la misma, por ejemplo, un entero de 32 bits, para simplificar.
Hasta ahora, los tiempos de cálculo tanto del servicio web como de la base de datos son exactamente los mismos.
El entorno es 1 servidor de aplicaciones, donde reside la aplicación, y 1 otro servidor que contiene tanto el servicio web como la base de datos. No hay nada más en el entorno que no sea la aplicación que llama repetidamente al servicio web o a la base de datos. Todo esto dentro de una única LAN, por lo que cualquier latencia de red es igual.
¿Desde una aplicación, que será más rápida, la llamada a la base de datos o la llamada al servicio web?
Lo que intento aislar, supongo, es cuál es más pesado. La configuración, apertura, cierre y cierre de una conexión de base de datos, ¿es más lenta que la de un servicio web o es la misma? Además, si hay otras cosas, como analizar el resultado de un servicio web, ¿cómo afectan la velocidad?
Son dos problemas diferentes. Nadie inteligente usará una base de datos para realizar operaciones matemáticas. Entonces, en última instancia, su servicio web llegará a una base de datos, y por lo tanto será más lento que acceder directamente a una base de datos ... hasta que considere la posibilidad de almacenar en caché los resultados, y luego depende de URK – kdgregory
@kdgregory. Puede haber leído mal su pregunta, pero no creo totalmente que sean dos problemas diferentes; por ejemplo, ahora mismo tengo que buscar la zona horaria para un usuario y puedo obtenerla de la base de datos (en una consulta simple de una tabla) o obtenerla de un servicio web, pero Estoy pensando que Herbert-Sitz tiene razón en cuanto a que la base de datos es más rápida porque en mi caso la llamada al servicio web implica más sobrecarga tanto en JBoss como en el servidor .Net que llamó al – JGlass