Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 проблема выпонения запроса  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
привет ребята
когда выполняню етот запрос
выполняется 10-15 минут и потом дает меня резултат
можна уменьшить времени и
увеличить скорост выполнения?

select phone,
sum([say umumi]) [say umumi] ,sum([Məbləg Umumi]) [Məbləg Umumi],
sum([say odenis]) [say odenis],sum([abune odenis]) [abune odenis], sum([say qaliq]) [say qaliq],
sum(case when [mebleg galig]<0 then [mebleg galig] else 0 end) [mebleg galig]  ,sum([Say Qacqin]) [Say Qacqin],
sum([M&#601;bl&#601;g Qa&#231;q&#305;n]) [M&#601;bl&#601;g Qa&#231;q&#305;n],sum([ say < 1 ay]) [ say < 1 ay] ,sum([M&#601;bl&#601;g< 1 ay]) [M&#601;bl&#601;g< 1 ay] ,
sum([ say < 2 ay]) [ say < 2 ay],sum([M&#601;bl&#601;g< 2 ay]) [M&#601;bl&#601;g< 2 ay],sum([ say < 3 ay]) [ say < 3 ay]
,sum([M&#601;bl&#601;g< 3 ay]) [M&#601;bl&#601;g< 3 ay],sum([ say < 4 ay]) [ say < 4 ay],sum([M&#601;bl&#601;g< 4 ay]) [M&#601;bl&#601;g< 4 ay]
 ,sum([ say < 5 ay]) [ say < 5 ay],sum([M&#601;bl&#601;g< 5 ay]) [M&#601;bl&#601;g< 5 ay],
sum([ say > 5 ay]) [ say > 5 ay],sum([M&#601;blg> 5 ay]) [M&#601;blg> 5 ay]
from(select  phone=case when (phone >=3410000  and  phone <=3412287 ) or (phone >=3420000  and  phone <=3429999)
 then N'XIRDALAN'
 when phone >=3490000  and  phone <=3495951 then N'QUSCULUQ'
 when phone >=3400000  and  phone <=3400767 then N'FATMAI'
 when phone >=3402000  and  phone<=3403023 then N'GORADIL BAGLARI'
 when phone >=3404000  and  phone <=3405023 then N'M&#399;H&#399;MM&#399;D&#399;LI'
 when phone>=3430000   and  phone <=3434095 then N'MEHDIABAD'
 when phone >=3406000  and  phone <=3407023 then N'GORADIL K&#399;NDI'
 when phone >=3408000  and  phone <=3409023 then N'DIGAH'
 when phone >=3440000  and  phone <=3442047 then N'SARAY'
 when phone >=3444000  and  phone <=3445535 then N'CEYRANBATAN'
 when phone >=3450000  and  phone <=3450511 then N'ASAGI GUZD&#399;K'
 when phone >=3454000  and  phone <=3454511 then N'YUXARI  GUZD&#399;K'
 when phone >=3456000  and  phone <=3456383 then N'CAYLI'
 when phone >=3457000  and  phone <=3458023 then N'QOBU'
 when phone>=3459000   and  phone <=3459511 then N'PIR&#399;KUSKUL'
 when phone >=3472000  and  phone <=3472959 then N'AT YALI'
 when phone >=3460000  and  phone <=3465055 then N'SULU-T&#399;P&#399;'
 when phone >=3476000  and  phone <=3479327 then N'MASAZIR'
 when phone >=3480000  and  phone <=3481471 then N'NOVXANI BAGLARI'
 when phone >=3483000  and  phone <=3483959 then N'NOVXANI '
 when phone >=3474000  and  phone <=3475023 then N'CIC&#399;K'
 when phone >=3499000  and  phone <=3499639 then N'N&#399;VAI'
 when phone >=3416000  and  phone <=3419007 then N'QURTULUS'
 when phone >=3468000  and  phone <=3469023 then N'HOKM&#399;LI'
 when phone >=3470000  and  phone <=3471023 then N'ATCILIQ'
 when phone >=3452000  and  phone <=3453023 then N'YENI QOBU'
 when phone >=3456400  and  phone <=3456911 then N'QOBUSTAN'
 when phone >=3467000  and  phone<=3467639 then N'XOCAH&#399;S&#399;N'
 when phone>=4080000   and  phone<=4099999 then N'CDMA'
 when phone >=5129000  and  phone <=5129099 then N'FHN'
 when phone >=3499950  and  phone <=3499999 then N'QAFQAZ UNV'
 when phone >=3414000  and  phone <=3415023 then N'Z&#399;NGILAN QAC/S&#399;H'
 else N'Nam&#601;lum' END,[say umumi],[M&#601;bl&#601;g Umumi],[say odenis],[abune odenis],[say qaliq],[mebleg galig],[Say Qacqin],
[M&#601;bl&#601;g Qa&#231;q&#305;n],[ say < 1 ay],[M&#601;bl&#601;g< 1 ay],[ say < 2 ay],[M&#601;bl&#601;g< 2 ay],[ say < 3 ay],[M&#601;bl&#601;g< 3 ay],
[ say < 4 ay],[M&#601;bl&#601;g< 4 ay],[ say < 5 ay],[M&#601;bl&#601;g< 5 ay],[ say > 5 ay],[M&#601;blg> 5 ay]
 from(select phone,[say umumi]=case when ([mebleg umumi ]-[1 ay ])<0 then 1 else 0 end,
([mebleg umumi ]-[1 ay ]) as [M&#601;bl&#601;g Umumi],[say odenis],[abune odenis],[say odenis] as [say qaliq],
([mebleg umumi ]-[1 ay ]+[abune odenis]) as [mebleg galig],[Say Qacqin],[Say Qacqin]*(-2.5) [M&#601;bl&#601;g Qa&#231;q&#305;n], [ say < 1 ay],[M&#601;bl&#601;g< 1 ay],[ say < 2 ay],
[M&#601;bl&#601;g< 2 ay],[ say < 3 ay],[M&#601;bl&#601;g< 3 ay],[ say < 4 ay],[M&#601;bl&#601;g< 4 ay],[ say < 5 ay],[M&#601;bl&#601;g< 5 ay],
 [ say > 5 ay],[M&#601;blg> 5 ay]
from(select phone,
 sum(case when kborc<0 then kborc else 0 end)as [mebleg umumi ],
 sum(case when [abune odenis]<>0 then 1 else 0 end)as [say odenis],
 sum([abune odenis])  as [abune odenis],
sum([Say Qacqin]) as [Say Qacqin],
sum(case when [M&#601;bl&#601;g< 1 ay]<0 then 1 else 0 end ) as [ say < 1 ay],
sum(case when [M&#601;bl&#601;g< 1 ay]<0 then [M&#601;bl&#601;g< 1 ay] else 0 end ) as [M&#601;bl&#601;g< 1 ay],
sum(case when [M&#601;bl&#601;g< 2 ay]<0 then 1 else 0 end ) as [ say < 2 ay],
sum(case when [M&#601;bl&#601;g< 2 ay]<0 then [M&#601;bl&#601;g< 2 ay] else 0 end ) as [M&#601;bl&#601;g< 2 ay],
sum(case when [M&#601;bl&#601;g< 3 ay]<0 then 1 else 0 end ) as [ say < 3 ay],
sum(case when [M&#601;bl&#601;g< 3 ay]<0 then [M&#601;bl&#601;g< 3 ay] else 0 end ) as [M&#601;bl&#601;g< 3 ay],
sum(case when [M&#601;bl&#601;g< 4 ay]<0 then 1 else 0 end ) as [ say < 4 ay],
sum(case when [M&#601;bl&#601;g< 4 ay]<0 then [M&#601;bl&#601;g< 4 ay] else 0 end ) as [M&#601;bl&#601;g< 4 ay],
sum(case when [M&#601;bl&#601;g< 5 ay]<0 then 1 else 0 end ) as [ say < 5 ay],
sum(case when [M&#601;bl&#601;g< 5 ay]<0 then [M&#601;bl&#601;g< 5 ay] else 0 end ) as [M&#601;bl&#601;g< 5 ay],
sum(case when [M&#601;blg> 5 ay]<0 then 1 else 0 end ) as [ say > 5 ay],
sum(case when [M&#601;blg> 5 ay]<0 then [M&#601;blg> 5 ay] else 0 end ) as [M&#601;blg> 5 ay],
sum([1 ay ]) as [1 ay ]
from(
select phone,[Umumi Say], [abune odenis],Borclar,kborc,[Say Qacqin],[M&#601;bl&#601;g< 1 ay],[M&#601;bl&#601;g< 2 ay],
[M&#601;bl&#601;g< 3 ay],[M&#601;bl&#601;g< 4 ay],[M&#601;bl&#601;g< 5 ay],[M&#601;blg> 5 ay],[1 ay ]
from(
select phone ,sum([umumi]) [Umumi Say],sum(borclar) as Borclar ,
sum([qacqin]) as [Say Qacqin] ,sum([M&#601;bl&#601;g< 1 ay]) [M&#601;bl&#601;g< 1 ay],
sum([M&#601;bl&#601;g< 2 ay]) [M&#601;bl&#601;g< 2 ay],
sum([M&#601;bl&#601;g< 3 ay]) [M&#601;bl&#601;g< 3 ay],sum([M&#601;bl&#601;g< 4 ay]) [M&#601;bl&#601;g< 4 ay],sum([M&#601;bl&#601;g< 5 ay]) [M&#601;bl&#601;g< 5 ay]
,sum([M&#601;bl&#601;g> 5 ay])  [M&#601;blg> 5 ay],sum([abune odenis]) [abune odenis],sum(kborc) kborc ,sum([1 ay ]) as [1 ay ] from (
select 
phone,sum(borclar) as borclar,sum([qacqin])as [qacqin],sum([umumi]) [umumi],sum(kborc) kborc,sum([1 ay ]) [1 ay ],
sum([M&#601;bl&#601;g< 1 ay]) [M&#601;bl&#601;g< 1 ay],sum([M&#601;bl&#601;g< 2 ay]) [M&#601;bl&#601;g< 2 ay],sum([M&#601;bl&#601;g< 3 ay])[M&#601;bl&#601;g< 3 ay]
,sum([M&#601;bl&#601;g< 4 ay])[M&#601;bl&#601;g< 4 ay],sum([M&#601;bl&#601;g< 5 ay])[M&#601;bl&#601;g< 5 ay],sum([M&#601;bl&#601;g> 5 ay])[M&#601;bl&#601;g> 5 ay],sum([abune odenis]) [abune odenis]
from(select phone,borclar,[qacqin],[umumi],[abune odenis],kborc, [1 ay ],[2 ay ],[3 ay ],[4 ay ],[5 ay ],
[M&#601;bl&#601;g< 1 ay]=case 	when 	-(borclar) <=[1 ay ] then 	borclar
			                   else 	0
				end,
[M&#601;bl&#601;g< 2 ay]=case 	when 	-(borclar) >[1 ay ] and  -(borclar) <=[2 ay ] then 	borclar
			                   else 	0
				end,
[M&#601;bl&#601;g< 3 ay]=case 	when 	-(borclar) >[1 ay ] and  -(borclar) >[2 ay ] and -(borclar) <=[3 ay ] then 	borclar
			                   else 	0
				end,

[M&#601;bl&#601;g< 4 ay]=case 	when 	-(borclar) >[1 ay ] and  -(borclar) >[2 ay ] and -(borclar) >[3 ay ]  and
 -(borclar) <=[4 ay ] then 	borclar
			                   else 	0
				end,
[M&#601;bl&#601;g< 5 ay]=case 	when 	-(borclar) >[1 ay ] and  -(borclar) >[2 ay ] and -(borclar) >[3 ay ]  and
 -(borclar) >[4 ay ]  and -(borclar) <=[5 ay ]then 	borclar
			                   else 	0
				end,
[M&#601;bl&#601;g> 5 ay]=case 	when 	-(borclar) >[1 ay ] and  -(borclar) >[2 ay ] and -(borclar) >[3 ay ]  and
 -(borclar) >[4 ay ]  and -(borclar) >[5 ay ]then 	borclar
			                   else 	0
				end
 from(select phone,borclar,ayliqlar as [1 ay ],
 ayliqlar*2 as [2 ay ],
 ayliqlar*3 as [3 ay ],
 ayliqlar*4 as [4 ay ],
 ayliqlar*5 as [5 ay ],[qacqin],[umumi],[abune odenis],kborc from(
select phone,Abune+cdma_borc as borclar,cdma_ayliq+ay_abune as ayliqlar,
[qacqin],[umumi],[abune odenis],kborc from (
select
phone,Abune,cdma_borc,
cdma_ayliq=case when phone<3999999 then 0 else cdma_ayliq end ,
ay_abune=case when phone>3999999 then 0 else ay_abune end,
[qacqin],[umumi],[abune odenis],kborc
 from(
select phone ,
sum(Abune) as Abune,
sum(cdma_borc) as cdma_borc,sum(cdma_ayliq) as cdma_ayliq ,sum(ay_abune) as ay_abune,sum([qacqin]) as [qacqin] 
,sum([abune odenis]) [abune odenis]
,sum([umumi]) as  [umumi],sum(kborc) as kborc
from(select phone,cdma_ayliq,ay_abune,Abune,cdma_borc,[qacqin]  ,[umumi] ,[abune odenis],kborc
from(
select phone,sum(kborc) as kborc ,sum (ay_abune) as ay_abune,sum(cdma_ayliq) as cdma_ayliq,sum([abune odenis]) as [abune odenis],
sum(CASE WHEN abune<0  then abune else 0 end) as  Abune,
sum(CASE WHEN cdma_borc<0  then cdma_borc else 0 end) as cdma_borc,sum([qacqin]) as [qacqin] ,sum([umumi]) as [umumi]
from(
select phone, ay_abune, cdma_ayliq,kborc,
abune=case when phone>3999999 then 0 else abune end,
cdma_borc=case when phone<3999999 then 0 else cdma_borc end,shesab,[qacqin],[umumi],[abune odenis]
from(
select phone,shesab,(ayliq+servis) as ay_abune,cdma as cdma_ayliq,
 (kborc-(ayliq+servis)+[abune odenis]+abune_kr_dax) as abune,
(kborc-cdma+[abune odenis]+abune_kr_dax) as cdma_borc,kborc,cdma,[abune odenis],abune_kr_dax, [qacqin],[umumi]
 from (--
select phone,shesab,servis,[abune odenis],kborc,ayliq,abune_kr_cix,abune_kr_dax,cdma,
 [qacqin]=case  	when 	shesab <>0 then 	1
			                   else 	0 end ,
[umumi] =case  	when 	shesab =0 then 	1
			                   else 	0 end   from(
---
select ph.phone,ph.shesab ,isnull(meb,0) as servis,isnull(gt.abune,0)as  [abune odenis],isnull(t2.debt,0) as kborc,
isnull(ft.Qiymet,0) as ayliq,isnull(yu.abune_kor_cix,0) as abune_kr_cix,
isnull(ikj.abune_kor_dax,0) as abune_kr_dax,isnull(f.Qiymet,0) as cdma 
from
(select*from phone where shesab=0 or shesab=54989 ) as ph 
left join 
(select p.phone,p.cdmaalamet,nb.Qiymet
from  phone as p inner join natiq.budc as nb on p.cdmaalamet=nb.Name where shesab=0)as f on f.phone=ph.phone
left join 
(select p.phone,p.budce,nb.Qiymet
from  phone as p inner join natiq.budc as nb on p.budce=nb.Name where p.shesab=0
)as ft on ft.phone=ph.phone
left join 
(select nomre, sum(qiyme) as meb 
from(
select sw.phone as nomre,sw.name as nam ,qy.Qiymet as qiyme
from servis_new as sw inner  join servis_baza as qy on sw.name=qy.Name
)y group by nomre
)o 
on o.nomre=ph.phone
left join 
(select  convert(int,telefon) as te,
sum(convert(money,odenis)/100.0) as abune 
 from absher where  convert(int,kod)=92 and 
  convert(int,sifre) in (0,66)
group by convert(int,telefon)) as gt on ph.phone=gt.te
left join (select convert(int,phone1)as phone1,
sum(convert(money,debt)) as debt FROM borc92 group by convert(int,phone1)) as t2 ON t2.phone1 =ph.phone
left join
(select convert(int,telefon ) as kij,sum(convert(money,odenis)/100.0) as abune_kor_cix from absher
where convert(int,sifre)=93 and convert(int,kod)=92  group by convert(int,telefon ))yu on yu.kij=ph.phone
left join
(select convert(int,telefon ) as hu,sum(convert(money,odenis)/100.0) as abune_kor_dax from absher
where convert(int,sifre)=5093 and convert(int,kod)=92  group by convert(int,telefon ))ikj on ikj.hu=ph.phone
-----
)ko  
)lop
)llllll
)kol  group  by phone 
)op 
)ll group  by phone 
)yy
)jjj
)ppppp
)oo
)mn group by phone
)llb group by phone
)p
)jjk group by phone
)k
)xy
)xyz group by phone
26 фев 14, 10:17    [15630629]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
aleks2
Guest
Я, почти, уверен, что если ты перепишешь его "красиво" - с форматированием и отступами - тебе полегчает.
26 фев 14, 10:54    [15630822]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
у вас БД в 4НФ что ле :) Обычно еще план выполнения показывают
26 фев 14, 10:58    [15630845]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
Для этого я бы создал отдельную таблицу
when phone >=3490000  and  phone <=3495951 then N'QUSCULUQ'
 when phone >=3400000  and  phone <=3400767 then N'FATMAI'
 when phone >=3402000  and  phone<=3403023 then N'GORADIL BAGLARI'
 when phone >=3404000  and  phone <=3405023 then N'M&#399;H&#399;MM&#399;D&#399;LI'
 when phone>=3430000   and  phone <=3434095 then N'MEHDIABAD'
 when phone >=3406000  and  phone <=3407023 then N'GORADIL K&#399;NDI'
 when phone >=3408000  and  phone <=3409023 then N'DIGAH'
 when phone >=3440000  and  phone <=3442047 then N'SARAY'
 when phone >=3444000  and  phone <=3445535 then N'CEYRANBATAN'
 when phone >=3450000  and  phone <=3450511 then N'ASAGI GUZD&#399;K'
 when phone >=3454000  and  phone <=3454511 then N'YUXARI  GUZD&#399;K'
 when phone >=3456000  and  phone <=3456383 then N'CAYLI'
 when phone >=3457000  and  phone <=3458023 then N'QOBU'
 when phone>=3459000   and  phone <=3459511 then N'PIR&#399;KUSKUL'
 when phone >=3472000  and  phone <=3472959 then N'AT YALI'
 when phone >=3460000  and  phone <=3465055 then N'SULU-T&#399;P&#399;'
 when phone >=3476000  and  phone <=3479327 then N'MASAZIR'
 when phone >=3480000  and  phone <=3481471 then N'NOVXANI BAGLARI'
 when phone >=3483000  and  phone <=3483959 then N'NOVXANI '
 when phone >=3474000  and  phone <=3475023 then N'CIC&#399;K'
 when phone >=3499000  and  phone <=3499639 then N'N&#399;VAI'
 when phone >=3416000  and  phone <=3419007 then N'QURTULUS'
 when phone >=3468000  and  phone <=3469023 then N'HOKM&#399;LI'
 when phone >=3470000  and  phone <=3471023 then N'ATCILIQ'
 when phone >=3452000  and  phone <=3453023 then N'YENI QOBU'
 when phone >=3456400  and  phone <=3456911 then N'QOBUSTAN'
 when phone >=3467000  and  phone<=3467639 then N'XOCAH&#399;S&#399;N'
 when phone>=4080000   and  phone<=4099999 then N'CDMA'
 when phone >=5129000  and  phone <=5129099 then N'FHN'
 when phone >=3499950  and  phone <=3499999 then N'QAFQAZ UNV'
 when phone >=3414000  and  phone <=3415023 then N'Z&#399;NGILAN QAC/S&#399;H'

Вы же "уендените" сервер не по-детски, а хотите, чтобы он работал быстро!
26 фев 14, 10:58    [15630850]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
Maxx
у вас БД в 4НФ что ле :) Обычно еще план выполнения показывают




у меня mssql 2000

да коказывает
но сохранит не могу в jpeg поетому не прикрепил сюда
26 фев 14, 11:00    [15630857]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
SQL2008
Для этого я бы создал отдельную таблицу
when phone >=3490000  and  phone <=3495951 then N'QUSCULUQ'
 when phone >=3400000  and  phone <=3400767 then N'FATMAI'
 when phone >=3402000  and  phone<=3403023 then N'GORADIL BAGLARI'
 when phone >=3404000  and  phone <=3405023 then N'M&#399;H&#399;MM&#399;D&#399;LI'
 when phone>=3430000   and  phone <=3434095 then N'MEHDIABAD'
 when phone >=3406000  and  phone <=3407023 then N'GORADIL K&#399;NDI'
 when phone >=3408000  and  phone <=3409023 then N'DIGAH'
 when phone >=3440000  and  phone <=3442047 then N'SARAY'
 when phone >=3444000  and  phone <=3445535 then N'CEYRANBATAN'
 when phone >=3450000  and  phone <=3450511 then N'ASAGI GUZD&#399;K'
 when phone >=3454000  and  phone <=3454511 then N'YUXARI  GUZD&#399;K'
 when phone >=3456000  and  phone <=3456383 then N'CAYLI'
 when phone >=3457000  and  phone <=3458023 then N'QOBU'
 when phone>=3459000   and  phone <=3459511 then N'PIR&#399;KUSKUL'
 when phone >=3472000  and  phone <=3472959 then N'AT YALI'
 when phone >=3460000  and  phone <=3465055 then N'SULU-T&#399;P&#399;'
 when phone >=3476000  and  phone <=3479327 then N'MASAZIR'
 when phone >=3480000  and  phone <=3481471 then N'NOVXANI BAGLARI'
 when phone >=3483000  and  phone <=3483959 then N'NOVXANI '
 when phone >=3474000  and  phone <=3475023 then N'CIC&#399;K'
 when phone >=3499000  and  phone <=3499639 then N'N&#399;VAI'
 when phone >=3416000  and  phone <=3419007 then N'QURTULUS'
 when phone >=3468000  and  phone <=3469023 then N'HOKM&#399;LI'
 when phone >=3470000  and  phone <=3471023 then N'ATCILIQ'
 when phone >=3452000  and  phone <=3453023 then N'YENI QOBU'
 when phone >=3456400  and  phone <=3456911 then N'QOBUSTAN'
 when phone >=3467000  and  phone<=3467639 then N'XOCAH&#399;S&#399;N'
 when phone>=4080000   and  phone<=4099999 then N'CDMA'
 when phone >=5129000  and  phone <=5129099 then N'FHN'
 when phone >=3499950  and  phone <=3499999 then N'QAFQAZ UNV'
 when phone >=3414000  and  phone <=3415023 then N'Z&#399;NGILAN QAC/S&#399;H'

Вы же "уендените" сервер не по-детски, а хотите, чтобы он работал быстро!



занете меня ест скрипт болше етого и ноа красво работает я тоже так зарисал не создал отделную таблицку
26 фев 14, 11:02    [15630871]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
yaxta
Maxx
у вас БД в 4НФ что ле :) Обычно еще план выполнения показывают




у меня mssql 2000

да коказывает
но сохранит не могу в jpeg поетому не прикрепил сюда

1. 4нф - ето не версия СУБД,ето одна из нормальных (нормализованых) форм
2. в 2000 все равно был set показать план в виде текста
26 фев 14, 11:02    [15630879]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
yaxta,

знаете..при таком подхоже естьправила офрмления подобных топиков для етого форума.. выж здесь не первый день. Тут же не клуб екстрасенсов в конце то концов
26 фев 14, 11:04    [15630888]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
yaxta
занете меня ест скрипт болше етого и ноа красво работает я тоже так зарисал не создал отделную таблицку

а-а-а... так вам красивый скрипт нужно?
я то подумал, чтобы побыстрее работал...
26 фев 14, 11:10    [15630930]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
  |--Compute Scalar(DEFINE:([Expr1084]=If ([Expr1545]=0) then NULL else [Expr1546], [Expr1085]=If ([Expr1547]=0) then NULL else [Expr1548], [Expr1086]=If ([Expr1549]=0) then NULL else [Expr1550], [Expr1087]=If ([Expr1551]=0) then NULL else [Expr1552], [Expr1088]=If ([Expr1553]=0) then NULL else [Expr1554], [Expr1089]=If ([Expr1555]=0) then NULL else [Expr1556], [Expr1090]=If ([Expr1557]=0) then NULL else [Expr1558], [Expr1091]=If ([Expr1559]=0) then NULL else [Expr1560], [Expr1092]=If ([Expr1561]=0) then NULL else [Expr1562], [Expr1093]=If ([Expr1563]=0) then NULL else [Expr1564], [Expr1094]=If ([Expr1565]=0) then NULL else [Expr1566], [Expr1095]=If ([Expr1567]=0) then NULL else [Expr1568], [Expr1096]=If ([Expr1569]=0) then NULL else [Expr1570], [Expr1097]=If ([Expr1571]=0) then NULL else [Expr1572], [Expr1098]=If ([Expr1573]=0) then NULL else [Expr1574], [Expr1099]=If ([Expr1575]=0) then NULL else [Expr1576], [Expr1100]=If ([Expr1577]=0) then NULL else [Expr1578], [Expr1101]=If ([Expr1579]=0) then NULL else [Expr1580]))
       |--Stream Aggregate(GROUP BY:([Expr1082]) DEFINE:([Expr1083]=SUM(If ([Expr1065]-[Expr1045]<0.00) then 1 else 0), [Expr1545]=COUNT_BIG([Expr1065]-[Expr1045]), [Expr1546]=SUM([Expr1065]-[Expr1045]), [Expr1547]=COUNT_BIG([Expr1066]), [Expr1548]=SUM([Expr1066]), [Expr1549]=COUNT_BIG([Expr1028]), [Expr1550]=SUM([Expr1028]), [Expr1551]=COUNT_BIG(If (Convert([Expr1065]-[Expr1045])+[Expr1028]<0.000000000) then (Convert([Expr1065]-[Expr1045])+[Expr1028]) else 0.000000000), [Expr1552]=SUM(If (Convert([Expr1065]-[Expr1045])+[Expr1028]<0.000000000) then (Convert([Expr1065]-[Expr1045])+[Expr1028]) else 0.000000000), [Expr1553]=COUNT_BIG([Expr1031]), [Expr1554]=SUM([Expr1031]), [Expr1555]=COUNT_BIG(Convert([Expr1031])*-2.5), [Expr1556]=SUM(Convert([Expr1031])*-2.5), [Expr1557]=COUNT_BIG([Expr1069]), [Expr1558]=SUM([Expr1069]), [Expr1559]=COUNT_BIG([Expr1070]), [Expr1560]=SUM([Expr1070]), [Expr1561]=COUNT_BIG([Expr1071]), [Expr1562]=SUM([Expr1071]), [Expr1563]=COUNT_BIG([Expr1072]), [Expr1564]=SUM([Expr1072]), [Expr1565]=COUNT_BIG([Expr1073]), [Expr1566]=SUM([Expr1073]), [Expr1567]=COUNT_BIG([Expr1074]), [Expr1568]=SUM([Expr1074]), [Expr1569]=COUNT_BIG([Expr1075]), [Expr1570]=SUM([Expr1075]), [Expr1571]=COUNT_BIG([Expr1076]), [Expr1572]=SUM([Expr1076]), [Expr1573]=COUNT_BIG([Expr1077]), [Expr1574]=SUM([Expr1077]), [Expr1575]=COUNT_BIG([Expr1078]), [Expr1576]=SUM([Expr1078]), [Expr1577]=COUNT_BIG([Expr1079]), [Expr1578]=SUM([Expr1079]), [Expr1579]=COUNT_BIG([Expr1080]), [Expr1580]=SUM([Expr1080])))
            |--Sort(ORDER BY:([Expr1082] ASC))
                 |--Compute Scalar(DEFINE:([Expr1082]=If (([phone].[phone]>=3410000 AND [phone].[phone]<=3412287) OR ([phone].[phone]>=3420000 AND [phone].[phone]<=3429999)) then 'XIRDALAN' else If ([phone].[phone]>=3490000 AND [phone].[phone]<=3495951) then 'QUSCULUQ' else If ([phone].[phone]>=3400000 AND [phone].[phone]<=3400767) then 'FATMAI' else If ([phone].[phone]>=3402000 AND [phone].[phone]<=3403023) then 'GORADIL BAGLARI' else If ([phone].[phone]>=3404000 AND [phone].[phone]<=3405023) then 'M?H?MM?D?LI' else If ([phone].[phone]>=3430000 AND [phone].[phone]<=3434095) then 'MEHDIABAD' else If ([phone].[phone]>=3406000 AND [phone].[phone]<=3407023) then 'GORADIL K?NDI' else If ([phone].[phone]>=3408000 AND [phone].[phone]<=3409023) then 'DIGAH' else If ([phone].[phone]>=3440000 AND [phone].[phone]<=3442047) then 'SARAY' else If ([phone].[phone]>=3444000 AND [phone].[phone]<=3445535) then 'CEYRANBATAN' else If ([phone].[phone]>=3450000 AND [phone].[phone]<=3450511) then 'ASAGI GUZD?K' else If ([phone].[phone]>=3454000 AND [phone].[phone]<=3454511) then 'YUXARI  GUZD?K' else If ([phone].[phone]>=3456000 AND [phone].[phone]<=3456383) then 'CAYLI' else If ([phone].[phone]>=3457000 AND [phone].[phone]<=3458023) then 'QOBU' else If ([phone].[phone]>=3459000 AND [phone].[phone]<=3459511) then 'PIR?KUSKUL' else If ([phone].[phone]>=3472000 AND [phone].[phone]<=3472959) then 'AT YALI' else If ([phone].[phone]>=3460000 AND [phone].[phone]<=3465055) then 'SULU-T?P?' else If ([phone].[phone]>=3476000 AND [phone].[phone]<=3479327) then 'MASAZIR' else If ([phone].[phone]>=3480000 AND [phone].[phone]<=3481471) then 'NOVXANI BAGLARI' else If ([phone].[phone]>=3483000 AND [phone].[phone]<=3483959) then 'NOVXANI ' else If ([phone].[phone]>=3474000 AND [phone].[phone]<=3475023) then 'CIC?K' else If ([phone].[phone]>=3499000 AND [phone].[phone]<=3499639) then 'N?VAI' else If ([phone].[phone]>=3416000 AND [phone].[phone]<=3419007) then 'QURTULUS' else If ([phone].[phone]>=3468000 AND [phone].[phone]<=3469023) then 'HOKM?LI' else If ([phone].[phone]>=3470000 AND [phone].[phone]<=3471023) then 'ATCILIQ' else If ([phone].[phone]>=3452000 AND [phone].[phone]<=3453023) then 'YENI QOBU' else If ([phone].[phone]>=3456400 AND [phone].[phone]<=3456911) then 'QOBUSTAN' else If ([phone].[phone]>=3467000 AND [phone].[phone]<=3467639) then 'XOCAH?S?N' else If ([phone].[phone]>=4080000 AND [phone].[phone]<=4099999) then 'CDMA' else If ([phone].[phone]>=5129000 AND [phone].[phone]<=5129099) then 'FHN' else If ([phone].[phone]>=3499950 AND [phone].[phone]<=3499999) then 'QAFQAZ UNV' else If ([phone].[phone]>=3414000 AND [phone].[phone]<=3415023) then 'Z?NGILAN QAC/S?H' else 'Nam?lum'))
                      |--Compute Scalar(DEFINE:([Expr1065]=If ([Expr1025]<0.00) then [Expr1025] else 0.00, [Expr1066]=Convert(If ([Expr1028]<>0.000000000) then 1 else 0), [Expr1028]=[Expr1028], [Expr1031]=[Expr1031], [Expr1069]=Convert(If ([Expr1046]<0.000000000) then 1 else 0), [Expr1070]=If ([Expr1046]<0.000000000) then [Expr1046] else 0.000000000, [Expr1071]=Convert(If ([Expr1047]<0.000000000) then 1 else 0), [Expr1072]=If ([Expr1047]<0.000000000) then [Expr1047] else 0.000000000, [Expr1073]=Convert(If ([Expr1048]<0.000000000) then 1 else 0), [Expr1074]=If ([Expr1048]<0.000000000) then [Expr1048] else 0.000000000, [Expr1075]=Convert(If ([Expr1049]<0.000000000) then 1 else 0), [Expr1076]=If ([Expr1049]<0.000000000) then [Expr1049] else 0.000000000, [Expr1077]=Convert(If ([Expr1050]<0.000000000) then 1 else 0), [Expr1078]=If ([Expr1050]<0.000000000) then [Expr1050] else 0.000000000, [Expr1079]=Convert(If ([Expr1051]<0.000000000) then 1 else 0), [Expr1080]=If ([Expr1051]<0.000000000) then [Expr1051] else 0.000000000, [Expr1045]=[Expr1045]))
                           |--Compute Scalar(DEFINE:([Expr1031]=[Expr1031], [Expr1046]=[Expr1046], [Expr1047]=[Expr1047], [Expr1048]=[Expr1048], [Expr1049]=[Expr1049], [Expr1050]=[Expr1050], [Expr1051]=[Expr1051], [Expr1028]=[Expr1028], [Expr1025]=[Expr1025], [Expr1045]=[Expr1045]))
                                |--Compute Scalar(DEFINE:([Expr1031]=[Expr1031], [Expr1025]=[Expr1025], [Expr1045]=If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026], [Expr1046]=If ( -([Expr1029]+[Expr1030])<=Convert(If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026])) then ([Expr1029]+[Expr1030]) else 0.000000000, [Expr1047]=If ( -([Expr1029]+[Expr1030])>Convert(If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026]) AND  -([Expr1029]+[Expr1030])<=Convert((If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026])*2.00)) then ([Expr1029]+[Expr1030]) else 0.000000000, [Expr1048]=If (( -([Expr1029]+[Expr1030])>Convert(If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026]) AND  -([Expr1029]+[Expr1030])>Convert((If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026])*2.00)) AND  -([Expr1029]+[Expr1030])<=Convert((If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026])*3.00)) then ([Expr1029]+[Expr1030]) else 0.000000000, [Expr1049]=If ((( -([Expr1029]+[Expr1030])>Convert(If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026]) AND  -([Expr1029]+[Expr1030])>Convert((If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026])*2.00)) AND  -([Expr1029]+[Expr1030])>Convert((If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026])*3.00)) AND  -([Expr1029]+[Expr1030])<=Convert((If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026])*4.00)) then ([Expr1029]+[Expr1030]) else 0.000000000, [Expr1050]=If (((( -([Expr1029]+[Expr1030])>Convert(If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026]) AND  -([Expr1029]+[Expr1030])>Convert((If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026])*2.00)) AND  -([Expr1029]+[Expr1030])>Convert((If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026])*3.00)) AND  -([Expr1029]+[Expr1030])>Convert((If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026])*4.00)) AND  -([Expr1029]+[Expr1030])<=Convert((If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026])*5.00)) then ([Expr1029]+[Expr1030]) else 0.000000000, [Expr1051]=If (((( -([Expr1029]+[Expr1030])>Convert(If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026]) AND  -([Expr1029]+[Expr1030])>Convert((If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026])*2.00)) AND  -([Expr1029]+[Expr1030])>Convert((If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026])*3.00)) AND  -([Expr1029]+[Expr1030])>Convert((If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026])*4.00)) AND  -([Expr1029]+[Expr1030])>Convert((If ([phone].[phone]<3999999) then 0.00 else [Expr1027]+If ([phone].[phone]>3999999) then 0.00 else [Expr1026])*5.00)) then ([Expr1029]+[Expr1030]) else 0.000000000, [Expr1028]=[Expr1028]))
                                     |--Compute Scalar(DEFINE:([Expr1029]=[Expr1029], [Expr1030]=[Expr1030], [Expr1027]=[Expr1027], [Expr1026]=[Expr1026], [Expr1031]=[Expr1031], [Expr1028]=[Expr1028], [Expr1025]=[Expr1025]))
                                          |--Compute Scalar(DEFINE:([Expr1025]=If ([Expr1533]=0) then NULL else [Expr1534], [Expr1026]=If ([Expr1535]=0) then NULL else [Expr1536], [Expr1027]=If ([Expr1537]=0) then NULL else [Expr1538], [Expr1028]=If ([Expr1539]=0) then NULL else [Expr1540], [Expr1029]=If ([Expr1541]=0) then NULL else [Expr1542], [Expr1030]=If ([Expr1543]=0) then NULL else [Expr1544]))
                                               |--Stream Aggregate(GROUP BY:([phone].[phone]) DEFINE:([Expr1533]=COUNT_BIG(isnull([Expr1010], 0.00)), [Expr1534]=SUM(isnull([Expr1010], 0.00)), [Expr1535]=COUNT_BIG(isnull([nb].[Qiymet], 0.00)+isnull([Expr1002], 0.00)), [Expr1536]=SUM(isnull([nb].[Qiymet], 0.00)+isnull([Expr1002], 0.00)), [Expr1537]=COUNT_BIG(isnull([nb].[Qiymet], 0.00)), [Expr1538]=SUM(isnull([nb].[Qiymet], 0.00)), [Expr1539]=COUNT_BIG(isnull([Expr1006], 0.000000000)), [Expr1540]=SUM(isnull([Expr1006], 0.000000000)), [Expr1541]=COUNT_BIG(If (If ([phone].[phone]>3999999) then 0.000000000 else (Convert(isnull([Expr1010], 0.00)-(isnull([nb].[Qiymet], 0.00)+isnull([Expr1002], 0.00)))+isnull([Expr1006], 0.000000000)+isnull([Expr1018], 0.000000000))<0.000000000) then If ([phone].[phone]>3999999) then 0.000000000 else (Convert(isnull([Expr1010], 0.00)-(isnull([nb].[Qiymet], 0.00)+isnull([Expr1002], 0.00)))+isnull([Expr1006], 0.000000000)+isnull([Expr1018], 0.000000000)) else 0.000000000), [Expr1542]=SUM(If (If ([phone].[phone]>3999999) then 0.000000000 else (Convert(isnull([Expr1010], 0.00)-(isnull([nb].[Qiymet], 0.00)+isnull([Expr1002], 0.00)))+isnull([Expr1006], 0.000000000)+isnull([Expr1018], 0.000000000))<0.000000000) then If ([phone].[phone]>3999999) then 0.000000000 else (Convert(isnull([Expr1010], 0.00)-(isnull([nb].[Qiymet], 0.00)+isnull([Expr1002], 0.00)))+isnull([Expr1006], 0.000000000)+isnull([Expr1018], 0.000000000)) else 0.000000000), [Expr1543]=COUNT_BIG(If (If ([phone].[phone]<3999999) then 0.000000000 else (Convert(isnull([Expr1010], 0.00)-isnull([nb].[Qiymet], 0.00))+isnull([Expr1006], 0.000000000)+isnull([Expr1018], 0.000000000))<0.000000000) then If ([phone].[phone]<3999999) then 0.000000000 else (Convert(isnull([Expr1010], 0.00)-isnull([nb].[Qiymet], 0.00))+isnull([Expr1006], 0.000000000)+isnull([Expr1018], 0.000000000)) else 0.000000000), [Expr1544]=SUM(If (If ([phone].[phone]<3999999) then 0.000000000 else (Convert(isnull([Expr1010], 0.00)-isnull([nb].[Qiymet], 0.00))+isnull([Expr1006], 0.000000000)+isnull([Expr1018], 0.000000000))<0.000000000) then If ([phone].[phone]<3999999) then 0.000000000 else (Convert(isnull([Expr1010], 0.00)-isnull([nb].[Qiymet], 0.00))+isnull([Expr1006], 0.000000000)+isnull([Expr1018], 0.000000000)) else 0.000000000), [Expr1031]=SUM(If (Convert([phone].[shesab])<>0) then 1 else 0)))
                                                    |--Sort(ORDER BY:([phone].[phone] ASC))
                                                         |--Hash Match(Right Outer Join, HASH:([Expr1419])=([phone].[phone]), RESIDUAL:([Expr1419]=[phone].[phone]))
                                                              |--Compute Scalar(DEFINE:([Expr1419]=Convert([Expr1017])))
                                                              |    |--Compute Scalar(DEFINE:([Expr1018]=If ([Expr1525]=0) then NULL else [Expr1526]))
                                                              |         |--Hash Match(Aggregate, HASH:([Expr1017]), RESIDUAL:([Expr1017]=[Expr1017]) DEFINE:([Expr1525]=COUNT_BIG(Convert(Convert([absher].[odenis]))/100.0), [Expr1526]=SUM(Convert(Convert([absher].[odenis]))/100.0)))
                                                              |              |--Compute Scalar(DEFINE:([Expr1017]=Convert([absher].[telefon])))
                                                              |                   |--Table Scan(OBJECT:([ats342].[dbo].[absher]), WHERE:(Convert([absher].[sifre])=5093 AND Convert([absher].[kod])=92))
                                                              |--Hash Match(Right Outer Join, HASH:([Expr1420])=([phone].[phone]), RESIDUAL:([Expr1420]=[phone].[phone]))
                                                                   |--Compute Scalar(DEFINE:([Expr1420]=Convert([Expr1013])))
                                                                   |    |--Hash Match(Aggregate, HASH:([Expr1013]), RESIDUAL:([Expr1013]=[Expr1013]))
                                                                   |         |--Compute Scalar(DEFINE:([Expr1013]=Convert([absher].[telefon])))
                                                                   |              |--Table Scan(OBJECT:([ats342].[dbo].[absher]), WHERE:(Convert([absher].[sifre])=93 AND Convert([absher].[kod])=92))
                                                                   |--Hash Match(Right Outer Join, HASH:([Expr1421])=([phone].[phone]), RESIDUAL:([Expr1421]=[phone].[phone]))
                                                                        |--Compute Scalar(DEFINE:([Expr1421]=Convert([Expr1009])))
                                                                        |    |--Compute Scalar(DEFINE:([Expr1010]=If ([Expr1527]=0) then NULL else [Expr1528]))
                                                                        |         |--Hash Match(Aggregate, HASH:([Expr1009]), RESIDUAL:([Expr1009]=[Expr1009]) DEFINE:([Expr1527]=COUNT_BIG(Convert([borc92].[debt])), [Expr1528]=SUM(Convert([borc92].[debt]))))
                                                                        |              |--Compute Scalar(DEFINE:([Expr1009]=Convert([borc92].[phone1])))
                                                                        |                   |--Table Scan(OBJECT:([ats342].[dbo].[borc92]))
                                                                        |--Hash Match(Right Outer Join, HASH:([Expr1422])=([phone].[phone]), RESIDUAL:([phone].[phone]=[Expr1422]))
                                                                             |--Compute Scalar(DEFINE:([Expr1422]=Convert([Expr1005])))
                                                                             |    |--Compute Scalar(DEFINE:([Expr1006]=If ([Expr1529]=0) then NULL else [Expr1530]))
                                                                             |         |--Hash Match(Aggregate, HASH:([Expr1005]), RESIDUAL:([Expr1005]=[Expr1005]) DEFINE:([Expr1529]=COUNT_BIG(Convert(Convert([absher].[odenis]))/100.0), [Expr1530]=SUM(Convert(Convert([absher].[odenis]))/100.0)))
                                                                             |              |--Compute Scalar(DEFINE:([Expr1005]=Convert([absher].[telefon])))
                                                                             |                   |--Table Scan(OBJECT:([ats342].[dbo].[absher]), WHERE:(Convert([absher].[kod])=92 AND (Convert([absher].[sifre])=66 OR Convert([absher].[sifre])=0)))
                                                                             |--Compute Scalar(DEFINE:([Expr1002]=If ([Expr1531]=0) then NULL else [Expr1532]))
                                                                                  |--Hash Match(Aggregate, HASH:([Rank1402]), RESIDUAL:([Rank1402]=[Rank1402]) DEFINE:([Expr1531]=COUNT_BIG([qy].[Qiymet]), [Expr1532]=SUM([qy].[Qiymet]), [phone].[shesab]=ANY([phone].[shesab]), [phone].[phone]=ANY([phone].[phone]), [nb].[Qiymet]=ANY([nb].[Qiymet]), [nb].[Qiymet]=ANY([nb].[Qiymet])))
                                                                                       |--Hash Match(Left Outer Join, HASH:([phone].[phone])=([sw].[phone]), RESIDUAL:([sw].[phone]=[phone].[phone]))
                                                                                            |--Rank
                                                                                            |    |--Nested Loops(Left Outer Join, OUTER REFERENCES:([phone].[phone]))
                                                                                            |         |--Nested Loops(Left Outer Join, OUTER REFERENCES:([phone].[phone]))
                                                                                            |         |    |--Sort(ORDER BY:([phone].[phone] ASC))
                                                                                            |         |    |    |--Clustered Index Scan(OBJECT:([ats342].[dbo].[phone].[PK_phone]), WHERE:(Convert([phone].[shesab])=0 OR Convert([phone].[shesab])=54989))
                                                                                            |         |    |--Nested Loops(Inner Join, WHERE:([nb].[Name]=[p].[cdmaalamet]))
                                                                                            |         |         |--Filter(WHERE:(Convert([p].[shesab])=0))
                                                                                            |         |         |    |--Bookmark Lookup(BOOKMARK:([Bmk1021]), OBJECT:([ats342].[dbo].[phone] AS [p]))
                                                                                            |         |         |         |--Index Seek(OBJECT:([ats342].[dbo].[phone].[yuk] AS [p]), SEEK:([p].[phone]=[phone].[phone]) ORDERED FORWARD)
                                                                                            |         |         |--Table Scan(OBJECT:([ats342].[natiq].[budc] AS [nb]))
                                                                                            |         |--Nested Loops(Inner Join, WHERE:([nb].[Name]=[p].[budce]))
                                                                                            |              |--Filter(WHERE:(Convert([p].[shesab])=0))
                                                                                            |              |    |--Bookmark Lookup(BOOKMARK:([Bmk1023]), OBJECT:([ats342].[dbo].[phone] AS [p]))
                                                                                            |              |         |--Index Seek(OBJECT:([ats342].[dbo].[phone].[yuk] AS [p]), SEEK:([p].[phone]=[phone].[phone]) ORDERED FORWARD)
                                                                                            |              |--Table Scan(OBJECT:([ats342].[natiq].[budc] AS [nb]))
                                                                                            |--Hash Match(Inner Join, HASH:([qy].[Name])=([sw].[name]), RESIDUAL:([qy].[Name]=[sw].[name]))
                                                                                                 |--Table Scan(OBJECT:([ats342].[dbo].[servis_baza] AS [qy]))
                                                                                                 |--Table Scan(OBJECT:([ats342].[dbo].[servis_new] AS [sw]))


К сообщению приложен файл (plan.txt - 20Kb) cкачать
26 фев 14, 11:25    [15631024]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
yaxta,

что то мнения ест ребята?
26 фев 14, 11:37    [15631132]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
есть как сказали таблица справочник и половина ваших лефтов ето 1 запрос..с кейсом в сумировании
26 фев 14, 11:44    [15631184]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
yaxta, индексы на таблицы вы не используете принципиально?
26 фев 14, 11:53    [15631243]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
uaggster
Member

Откуда:
Сообщений: 1056
SQL2008
yaxta, индексы на таблицы вы не используете принципиально?

Во-во.
Если не хочется переписывать и все такое, натрави на запрос датабейз индекс тюннинг адвизор (как он там в 2000 назывался?) и построй индексы и статистики, которые он посоветует.
26 фев 14, 12:04    [15631334]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
Glory
Member

Откуда:
Сообщений: 104751
uaggster
SQL2008
yaxta, индексы на таблицы вы не используете принципиально?

Во-во.
Если не хочется переписывать и все такое, натрави на запрос датабейз индекс тюннинг адвизор (как он там в 2000 назывался?) и построй индексы и статистики, которые он посоветует.

Ага, особенно индексы помогут для convert(int,sifre)=5093
26 фев 14, 12:05    [15631345]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
Glory
Ага, особенно индексы помогут для convert(int,sifre)=5093

Видимо полагалось, что
 ... where convert(int,sifre)=5093 and convert(int,kod)=92  group by convert(int,telefon )

исполняется быстрее чем
 ... where sifre='5093' and kod='92'  group by telefon 
26 фев 14, 12:09    [15631388]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
Maxx
есть как сказали таблица справочник и половина ваших лефтов ето 1 запрос..с кейсом в сумировании



проблема в етом скрипте ,?

sum([say umumi]) [say umumi] ,sum([M&#601;bl&#601;g Umumi]) [M&#601;bl&#601;g Umumi],
sum([say odenis]) [say odenis],sum([abune odenis]) [abune odenis], sum([say qaliq]) [say qaliq],
sum(case when [mebleg galig]<0 then [mebleg galig] else 0 end) [mebleg galig]  ,sum([Say Qacqin]) [Say Qacqin],
sum([M&#601;bl&#601;g Qa&#231;q&#305;n]) [M&#601;bl&#601;g Qa&#231;q&#305;n],sum([ say < 1 ay]) [ say < 1 ay] ,sum([M&#601;bl&#601;g< 1 ay]) [M&#601;bl&#601;g< 1 ay] ,
sum([ say < 2 ay]) [ say < 2 ay],sum([M&#601;bl&#601;g< 2 ay]) [M&#601;bl&#601;g< 2 ay],sum([ say < 3 ay]) [ say < 3 ay]
,sum([M&#601;bl&#601;g< 3 ay]) [M&#601;bl&#601;g< 3 ay],sum([ say < 4 ay]) [ say < 4 ay],sum([M&#601;bl&#601;g< 4 ay]) [M&#601;bl&#601;g< 4 ay]
 ,sum([ say < 5 ay]) [ say < 5 ay],sum([M&#601;bl&#601;g< 5 ay]) [M&#601;bl&#601;g< 5 ay],
sum([ say > 5 ay]) [ say > 5 ay],sum([M&#601;blg> 5 ay]) [M&#601;blg> 5 ay]
26 фев 14, 12:16    [15631459]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
Glory
uaggster
пропущено...

Во-во.
Если не хочется переписывать и все такое, натрави на запрос датабейз индекс тюннинг адвизор (как он там в 2000 назывался?) и построй индексы и статистики, которые он посоветует.

Ага, особенно индексы помогут для convert(int,sifre)=5093



а индексы где надо записыват?
26 фев 14, 12:17    [15631476]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
Glory
Member

Откуда:
Сообщений: 104751
yaxta
а индексы где надо записыват?

Для начала узнают, что такое индекс, зачем он нужен и когда используется.
А не где он "записывается".
26 фев 14, 12:19    [15631492]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
yaxta,

а давайте вы будете читать все ответы ,а не выборчно гадать ?
Я вообще про лефт джойны писал
select ph.phone,ph.shesab ,isnull(meb,0) as servis,isnull(gt.abune,0)as  [abune odenis],isnull(t2.debt,0) as kborc,
isnull(ft.Qiymet,0) as ayliq,isnull(yu.abune_kor_cix,0) as abune_kr_cix,
isnull(ikj.abune_kor_dax,0) as abune_kr_dax,isnull(f.Qiymet,0) as cdma 
from
(select*from phone where shesab=0 or shesab=54989 ) as ph 
left join 
(select p.phone,p.cdmaalamet,nb.Qiymet
from  phone as p inner join natiq.budc as nb on p.cdmaalamet=nb.Name where shesab=0)as f on f.phone=ph.phone
left join 
(select p.phone,p.budce,nb.Qiymet
from  phone as p inner join natiq.budc as nb on p.budce=nb.Name where p.shesab=0
)as ft on ft.phone=ph.phone
left join 
(select nomre, sum(qiyme) as meb 
from(
select sw.phone as nomre,sw.name as nam ,qy.Qiymet as qiyme
from servis_new as sw inner  join servis_baza as qy on sw.name=qy.Name
)y group by nomre
)o 
on o.nomre=ph.phone
left join 
(select  convert(int,telefon) as te,
sum(convert(money,odenis)/100.0) as abune 
 from absher where  convert(int,kod)=92 and 
  convert(int,sifre) in (0,66)
group by convert(int,telefon)) as gt on ph.phone=gt.te
left join (select convert(int,phone1)as phone1,
sum(convert(money,debt)) as debt FROM borc92 group by convert(int,phone1)) as t2 ON t2.phone1 =ph.phone
left join
(select convert(int,telefon ) as kij,sum(convert(money,odenis)/100.0) as abune_kor_cix from absher
where convert(int,sifre)=93 and convert(int,kod)=92  group by convert(int,telefon ))yu on yu.kij=ph.phone
left join
(select convert(int,telefon ) as hu,sum(convert(money,odenis)/100.0) as abune_kor_dax from absher
where convert(int,sifre)=5093 and convert(int,kod)=92  group by convert(int,telefon ))ikj on ikj.hu=ph.phone
-----

Да и ответ Glory и SQL2008 тоже вам подскажут много..если вы начнете их читать
26 фев 14, 12:19    [15631499]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
Maxx,

ребята
меня что надо сделат
можете советоват ?
26 фев 14, 12:30    [15631602]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
yaxta, а у вас там что все столбцы с числами имеют символьный тип, раз столько convert-ов с ними понатыкано?

Сообщение было отредактировано: 26 фев 14, 12:38
26 фев 14, 12:37    [15631657]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
очень все ето напоминает код из одной страны на востоке..со слонами и чаем :)

Ну а чем вам помоч, вас направили почитать про индексы,подумать про конвертацию типов ,посмотреть на то сколько раз одна и тажа таблица используется... вам пора пытаться делать выводы .
26 фев 14, 12:40    [15631680]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
tpg
yaxta, а у вас там что все столбцы с числами имеют символьный тип, раз столько convert-ов с ними понатыкано?


надо изменит convert(int,telefon ) на ' telefon '

??
26 фев 14, 12:40    [15631681]     Ответить | Цитировать Сообщить модератору
 Re: проблема выпонения запроса  [new]
Glory
Member

Откуда:
Сообщений: 104751
yaxta
меня что надо сделат
можете советоват ?

Ничего не трогайте
По крайней мере у вас есть запрос, который вам возвращает нужный результат.
26 фев 14, 12:42    [15631695]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить