Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa performansama privremene tabele

[es] :: MS SQL :: Problem sa performansama privremene tabele

[ Pregleda: 1474 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Član broj: 25683
Poruke: 2267
*.wimax.verat.net.

Sajt: www.gowi.rs


+109 Profil

icon Problem sa performansama privremene tabele12.06.2011. u 16:40 - pre 155 meseci
Imam store proceduru koja se koristi za kreiranje nekavog izveštaja za određeni period i vrstu osiguranja (kuća,auto). U proceduri se prvo kreira privermena tabela, pa se onda na osnovu te privrmene tabele i drugih povezanih tabela i pogleda formira lista za izveštaj.

Kad zamenim privremenu tabele sa tabelom-promenljvom vreme kreiranje tabele se značajno produži.
Privremena tabela #relevantrisk
Code:
CREATE TABLE #relevantrisk (pk int,[Channel] varchar(50), [Sub-Channel] varchar(50),
                                                  PaymentMethod varchar(50), [Name] varchar(250), HistoryActionType nvarchar(50), TransEffDate datetime, IPTPercent real )
INSERT INTO #relevantrisk (
    pk, 
    Channel, 
   [Sub-Channel], 
    PaymentMethod, 
   [Name], 
   HistoryActionType, 
   TransEffDate, 
   IPTPercent)
SELECT ...
...
DROP TABLE #relevantrisk


Vrsta osiguranja Period Slogova Select (s) Vreme kreiranja tabele (s)
Home 01-05 do 11-05 133 21 21
Home 01-05 do 31-05 317 23 37
Motor 01-05 do 11-05 120 21 25

Tabela promenljiva @relevantrisk
Code:
DECLARE @relevantrisk table (pk int,[Channel] varchar(50), [Sub-Channel] varchar(50), 
                                              paymentmethod varchar(50), [Name] varchar(250), HistoryActionType nvarchar(50), TransEffDate datetime, IPTPercent real )
INSERT INTO @relevantrisk (
    pk, 
    Channel, 
   [Sub-Channel], 
    PaymentMethod, 
   [Name], 
   HistoryActionType, 
   TransEffDate, 
   IPTPercent)
SELECT ...


Vrsta osiguranja Period Slogova Select (s) Vreme kreiranja tabele (s)
Home 01-05 do 11-05 133 21 161
Home 01-05 do 11-05 317 23 470
Motor 01-05 do 11-05 120 21 520

Prema onome što ja znam trebalo bi da su perfomanse bolje za tabelu-promenljivu. Upit koji sledi na osnovu tabele jeste duplo brži u slučaju tabele-promenjljive ali to nije dovoljno da nadoknadi vreme utrošeno prilikom kreiranja. Da li ima neko objašnjenje? Nisam još imao prilike da bazu prebacim na drugo okruženje i da probam. U SELECT upitu uspostavlja se veza sa bazom na drugom serveru.

Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

Koce
DBA
Serbia, Belgrade

Član broj: 59217
Poruke: 144
*.static.isp.telekom.rs.



+1 Profil

icon Re: Problem sa performansama privremene tabele13.06.2011. u 08:39 - pre 155 meseci
Sta ce ti dati bolje performance, @ ili # tabela zavisi od vise faktora a ponajvise od velicine tabele. Takodje, vrlo je bitno da znas da @ tabele nemaju statistike, tako da ako imas veliku tabelu i nekoliko transformacija, upita nad njom, koristi temp tabelu, i to tako sto ces joj pri kreiranju napraviti i clusterovan index po odgovarajucim kolonama. Ne znam da li sam te dobro shvatio, ali tebi je najveci problem punjenje te tabele, i to sa nekog drugog servera? Pogledaj da tu ne lezi problem, ili pusti exec plan nad telom procedure pa vidi gde trosi najvise resursa.
 
Odgovor na temu

nadavesela
programer, DZS

Član broj: 199298
Poruke: 93
195.26.131.*



+3 Profil

icon Re: Problem sa performansama privremene tabele15.06.2011. u 10:39 - pre 155 meseci
predlog: mesto Privremena tabela #relevantrisk, ili Tabela promenljiva @relevantrisk
koristiti Indexed Views kad je moguce.
 
Odgovor na temu

[es] :: MS SQL :: Problem sa performansama privremene tabele

[ Pregleda: 1474 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.