Pytanie : Zapytanie zbyt wolny

Kochany Ekspert,

The pytanie brać 30+ sekunda.  Dlaczego móc I ono do dlaczego niż (1) drugi?

DECLARE @variable_one VARCHAR (4) USTALONY @variable_one = 'xyz'< br/>DECLARE @total STOŁOWY (sumaryczny PŁAWIK)

INSERT W @total (sumaryczny)
SELECT SUMA (T.table1)
FROM table1 T
JOIN table2 M NA M.M_ID = T.M_ID
JOIN table3 P NA P.E_ID = M.B_E_ID I P.DEPARTMENT = @variable_one
WHERE [status] W ("w", "p ")
AND T.flag='B'< br/>
DECLARE @total_fig PŁAWIK USTALONY @total_fig = (WYBRANY suma OD @total)
SELECT P.E_NAME [Imię], ((SUMA (T.table1)/@total_fig)) * 100 [wartość], SUMA (T.table1) [Postać]
FROM table1 T
JOIN table2 M NA M.M_ID = T.M_ID
JOIN table3 P NA P.E_ID = M.B_E_ID I P.DEPARTMENT = @variable_one
WHERE [status] WEWNĄTRZ ("w", "p ")
AND T.flag = 'B'< br/>GROUP P.E_NAME
ORDER P.E_NAME

Odpowiedź : Zapytanie zbyt wolny

I próbować oba cyngiel i the use dane warstwa tak jak nhibernate - ty zawsze iść synchronisation problem. nHibernate zamierzać twój dane - i twój biznesowy warstwa musieć proces tak jak twój cena. Osobiście I iść blisko cyngiel dla jakaś biznesowy logika - dla być może, ale kontrolować inny. I myśleć zaciemniać biznesowy logika i robić ono biznesowy na niemożliwy inny kod rozwiązanie dla the dane - gdy ty znajdować.
Dlaczego nie ruszać się twój spustowy kod w zaopatrzony procedura i dzwonić the procedura z wewnątrz the transakcja zakres the aktualizacja jeżeli the "kończyć" flaga być prawdziwy? I kierować ty wśród the biznesowy warstwa, ale ty móc móc the dane warstwa jeżeli ty życzyć.

Tim
Inne rozwiązania  
 
programming4us programming4us