¿Cuál es la mejor manera de configurar una base de datos para admitir aplicaciones basadas en web con grandes conjuntos de datos dinámicos?
Esto siempre es un desafío. Lanzarle hardware rara vez resuelve el problema. El mejor enfoque es el arquitectónico. Estas son algunas preguntas que los VAR deben considerar:
- ¿Se puede utilizar el almacenamiento en caché? El servidor de archivos y los servidores web están optimizados para enviar archivos grandes, mientras que los RDBM están optimizados para operaciones basadas en conjuntos y no siempre se escalan bien para operaciones grandes. El almacenamiento en caché funcionará mejor si las consultas dinámicas se repiten o si se actualizan partes de ellas. Por ejemplo, la mayoría de los motores de búsqueda aprovechan el hecho de que el 90% de las búsquedas se realizan sobre los mismos temas, y estos resultados de búsqueda se almacenan en caché y se envían al cliente sin llegar a los catálogos de texto completo. Estos resultados almacenados en caché se actualizan continuamente. Naturalmente, esto solo funcionará si sabe de antemano cómo se verán los conjuntos de datos dinámicos.
- ¿Se puede agrupar el resto y enviarlo al cliente web de forma asincrónica? La programación para clientes web requiere técnicas de programación especiales al tratar con grandes conjuntos de datos dinámicos para evitar que se agote el tiempo de espera de la solicitud. En la base de datos, desea que las consultas se ejecuten lo más rápido posible. El tiempo dedicado a la desnormalización y la creación de índices de cobertura proporcionará el mayor impacto en el rendimiento.
- ¿Puedes usar la paginación? La paginación solo mostrará los primeros 10, 25 o 100 resultados en el cliente. Si la aplicación web no necesita mostrar o consumir todo el conjunto de datos dinámicos a la vez, puede devolver los primeros 100 resultados al cliente web y luego generar todo el conjunto de datos dinámicos en segundo plano para que se devuelva la solicitud repetida. conjunto de datos dinámicos pregenerados.
- ¿Puedes usar notificaciones de consultas? Las notificaciones de consulta mantendrán actualizado un conjunto de datos dinámico con filas recién insertadas. Es una característica de SQL Server 2005 y ADO.Net 2.0. Si ocurre un cambio en los datos subyacentes al conjunto de datos dinámicos, se realizará una notificación para actualizar el conjunto de datos.
- ¿Son los RDBM la herramienta adecuada para la tarea? Asistí a una presentación en la que una empresa mostró su herramienta de informes que mostraba todo tipo de contenido agregado. El backend era una base de datos de SQL Server. Como la herramienta de informes se ocupaba exclusivamente de agregaciones y desgloses, la elección natural debería haber sido Analysis Services.