Fråga : För långsam Query

Kära experter,

The ifrågasätter efter tar 30+ understöder för att utföra.  Hur kan jag rusa den upp till mindre, än 1 understöder?

DECLARE @variable_one VARCHAR (4) FASTSTÄLLDT @variable_one = 'xyz'< br/>DECLARE @total BORDLÄGGER

INSERT IN I @total (sammanlagd)
SELECT SUMMA (T.table1)
FROM table1 T
JOIN table2 M PÅ M.M_ID = T.M_ID
JOIN table3 P PÅ P.E_ID = M.B_E_ID OCH P.DEPARTMENT = @variable_one
WHERE [status] I (”w”, ”p”)
AND T.flag='B'< br/>
DECLARE @total_fig FLÖTE FASTSTÄLLDT @total_fig = (den VALDA slutsumman FRÅN @total)
SELECT P.E_NAME som [namnge], ((SUMMAN (T.table1)/@total_fig)) * 100 som [värdera], SUMMA (T.table1) som [figurera],
FROM table1 T
JOIN table2 M PÅ M.M_ID = T.M_ID
JOIN table3 P PÅ P.E_ID = M.B_E_ID OCH P.DEPARTMENT = @variable_one
WHERE [status] I (”w”, ”p”)
AND T.flag = 'B'
GROUP VID P.E_NAME
ORDER VID P.E_NAME
" klar "

Svar : För långsam Query

Jag skulle inte försök till sammanslutningen både startar och bruket av ett datalagrar liksom nhibernate - du går alltid att få synkroniseringsproblem. nHibernate ämnas för att klara av dina data - och ditt affärslagrar bör klara av bearbetar liksom att uppdatera som är ditt, prissätter. Personligen jag går inte nära startar för någon affärslogik - för att revidera kanske, utan ingenting annars. Funderare I de oklar affärslogik och gör den nigh på omöjligt att genomföra annat kodifierar lösningar för att klara av datan - som du finner.
Why inte den din flyttningen startar kodifierar in i ett lagrat tillvägagångssätt, och appellen tillvägagångssättet transaktionsräckvidden av uppdateringen, om ”avslutade sig” sjunker inifrån som, är riktig? Jag skulle rätta detta inom affärslagrar, men du kunde flyttningen detta till datalagrar, om du önskar.

Tim
Andra lösningar  
 
programming4us programming4us