none
Dudas de como crear tabla con resumen de información. RRS feed

  • Pregunta

  • Hola amigos del foro: tengo una aplicación en vb.net donde se muestra un resumen por cada mes en el periodo del año, el total de las ventas, ventas al crédito, ventas en efectivo y créditos vencidos. A medida que voy llegando al fin de año, las consultas se van haciendo tan lentas, que estoy teniendo problemas con con el tiempo de conección.

    Revisando la funcionalidad de mis procedimientos almacenados que utilizo para crear este informe, noto una enorme diferencia de velocidad de repuesta cuando hago estas consultas desde el programa que desde el Management Studio.   ¿será mejor crear esta tabla por lado del servidor haciendo uso de un trigger para tener actualizado los datos de esta tabla? ¿relantizaría la eficiencia o desempeño del Sql Server? Estoy usando Sql Server 2012 estandard.

    domingo, 23 de julio de 2017 21:55

Respuestas

  • Hola Carlos qué tal. La situación que describes es normalmente un caso de Parameter Sniffing al tratarse de un stored procedure que realiza estas consultas. Te dejo un link para ver en detalle este funcionamiento: https://blogs.technet.microsoft.com/mdegre/2011/11/06/what-is-parameter-sniffing/ Por otro lado las tablas involucradas en las consultas tienen un mantenimiento a nivel de índices y Estadísticas? Las tablas tienen índices creados? Eventualmente un trigger no te beneficiará en la performance de una consulta. Saludos

    Mariano K.

    • Marcado como respuesta Moderador M viernes, 28 de julio de 2017 21:24
    lunes, 24 de julio de 2017 22:25
  • Hola Carlitos,

    Quizá estas puedan ser 2 opciones para tu caso:

    1.- Crear un Job que se ejecute cierta hora de la noche para no afectar el performance de la BD y el resultado dejarlo en una tabla, la cual solo desde Visual Studio la consultes, esto te ayudara a ser mas rápido.

    2.- Usa LINQ con Entity Framework y guarda tu información retornada de la BD en tus objetos la cual te sera mas fácil y practica de manipularla.

    Espero te haya servido algo esto si no, no dudes en escribirme para cualquier duda y poderte ayudar.

    Saludos!

    Jorge Cortés

    • Marcado como respuesta Moderador M viernes, 28 de julio de 2017 21:24
    lunes, 24 de julio de 2017 23:34

Todas las respuestas

  • Hola Carlos qué tal. La situación que describes es normalmente un caso de Parameter Sniffing al tratarse de un stored procedure que realiza estas consultas. Te dejo un link para ver en detalle este funcionamiento: https://blogs.technet.microsoft.com/mdegre/2011/11/06/what-is-parameter-sniffing/ Por otro lado las tablas involucradas en las consultas tienen un mantenimiento a nivel de índices y Estadísticas? Las tablas tienen índices creados? Eventualmente un trigger no te beneficiará en la performance de una consulta. Saludos

    Mariano K.

    • Marcado como respuesta Moderador M viernes, 28 de julio de 2017 21:24
    lunes, 24 de julio de 2017 22:25
  • Hola Carlitos,

    Quizá estas puedan ser 2 opciones para tu caso:

    1.- Crear un Job que se ejecute cierta hora de la noche para no afectar el performance de la BD y el resultado dejarlo en una tabla, la cual solo desde Visual Studio la consultes, esto te ayudara a ser mas rápido.

    2.- Usa LINQ con Entity Framework y guarda tu información retornada de la BD en tus objetos la cual te sera mas fácil y practica de manipularla.

    Espero te haya servido algo esto si no, no dudes en escribirme para cualquier duda y poderte ayudar.

    Saludos!

    Jorge Cortés

    • Marcado como respuesta Moderador M viernes, 28 de julio de 2017 21:24
    lunes, 24 de julio de 2017 23:34