SQL Server Performance
  1. emadrigal New Member

    Qué tal compañeros, tengo un problema. Tengo una aplicación en VB6 en la cual tengo una forma que llena unos combo boxes con los datos de fechas de una tabla en SQLServer2000. El problema es que el llenado de los combos lo hago con una consulta sobre una tabla que tiene muchos registros (800mil), e irá creciendo con el tiempo ya que cada mes por cada periodo se añaden alrededor de 80mil registros. Logro llenar los combos pero la consulta que trae los periodos disponibles en la tabla de consulta tarda demasiado. La consulta es algo así como:
    Select Periodo from TablaDatos Group by Periodo.
    He pensado en solucionar esto creando un Trigger que cada vez que se actualice TablaDatos me actualice una tabla que va a contener solo los periodos existentes en TablaDatos. Es decir que si en TablaDatos hay un año completo almacenado, en mi tabla que se actualice con el trigger solo habrña 12 registros, correspondientes a los doce periodos del año.
    Por esto es que quiero saber si los triggers se ejecutan cada vez que un registro es agregado, borrado o actualizado en la tabla a la cual está relacionado, porque de ser así, no me sería útil el trigger, ya que la tabla a la cual pienso relacionarlo se le agregan cada mes al rededor de 80mil reg, por lo que el trigger se ejecutaría 80mil veces. Es así como funciona? Que me sugieren?.
    Gracias por su valiosa ayuda.

    Enrique Madrigal
  2. Luis Martin Moderator

    El trigger se ejecuta para cualquier acción de Update, insert o delete, por lo tanto parece más conveniente realizar una store procedure y ejecutarla mediante un job agendado en períodos que a ti te parezcan más convenientes.



    Luis Martin
    Moderator
    SQL-Server-Performance.com

    All postings are provided “AS IS” with no warranties for accuracy.

Share This Page