Question : Question trop lente

Les chers experts, question suivante du

The prend les secondes 30+ pour s'exécuter.  Comment est-ce que je peux l'expédier jusqu'à plus moins de 1 seconde ?

DECLARE @variable_one VARCHAR (4) RÉGLÉ @variable_one = 'xyz'< Br/>DECLARE @total TABLE (FLOTTEUR total)

INSERT DANS @total
SELECT SOMME (T.table1)
FROM table1 T
JOIN table2 M SUR M.M_ID = T.M_ID
JOIN table3 P SUR P.E_ID = M.B_E_ID ET P.DEPARTMENT = @variable_one
WHERE [statut] DANS (« W », « p ")
AND T.flag='B'< Br/>
DECLARE @total_fig FLOTTEUR RÉGLÉ @total_fig = (total CHOISI de @total)
SELECT P.E_NAME comme [nom], ((SOMME (T.table1)/@total_fig)) * 100 comme [valeur], SOMME (T.table1) en tant que [
FROM table1 T
JOIN table2 M de figure] SUR M.M_ID = T.M_ID
JOIN table3 P SUR P.E_ID = M.B_E_ID ET P.DEPARTMENT = @variable_one
WHERE [statut] DEDANS (« W », « ")
AND de p T.flag = 'Br/>GROUP de B'< PAR P.E_NAME
ORDER PAR P.E_NAME
class= de

Réponse : Question trop lente

Je n'essayerais pas de combiner les deux déclenchements et l'utilisation d'une couche données telle que le nhibernate - vous allez toujours obtenir des problèmes de synchronisation. le nHibernate est prévu pour contrôler vos données - et votre couche d'affaires devrait contrôler des processus tels que mettre à jour vos prix. Personnellement je ne vais pas près des déclenchements pour aucune logique d'affaires - pour auditer peut-être, mais près de rien d'autre. Je pense qu'ils obscurcissent la logique d'affaires et la rendent proche sur impossible de mettre en application d'autres solutions de code pour contrôler les données - comme vous trouvez.
Pourquoi pas entrer votre code de déclenchement dans un procédé stocké et appeler le procédé de la portée de transaction de la mise à jour si « finissait » le drapeau est vrai ? Je contrôlerais ceci dans la couche d'affaires, mais vous pourriez déplacer ceci à la couche données si vous souhaitez.

Tim
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us