sql优化用group by 函数代替分析函数
上一篇 / 下一篇 2008-03-21 15:17:25 / 个人分类:pl/sql
SQL> Select dfId,ITPUB个人空间B(K[)H$n3l8q
2 Id As Client_Id,
fv%O"CED.p0 3 Login As Client_Name,ITPUB个人空间e#G8swRS\9I.^
4 To_Char(Created_Date, 'yyyy-mm-dd') As Start_Date,
/}!@'QRn.`0 5 Sum(1) Over() As Total_Count
*NaVX*CG/v3U0 6 From (Select a.*ITPUB个人空间 c(ah.L0a'n-H
7 From tb_test1 a,
%qE;KPs*["n5D0 8 (Select Client_IdITPUB个人空间EA@4Pa
`W+fY_0oQ
9 From (Select Client_Id,ITPUB个人空间x~j
p v
10 Event_Date,ITPUB个人空间,D_"P{*b"Q
11 Row_Number() Over(Partition By Client_Id OrdITPUB个人空间~Ho%w&^
er By Event_Date Desc) Rn
:s Y)vHG"z9K#l0 12 From tb_test1_Rolling_Daily_Repo)ITPUB个人空间4V hLma(uy5X5JlY
13 Where Rn = 1
%yNH
eC*UC0 14 And Event_Date <
@:u4}+xdDc,V:g
G0 15 (Select Max(Event_Date) From tb_test1_abc_RepoITPUB个人空间c7?4PT9a)ix
rt)) b
/J0x7r,@ZU#P&K0 16 Where a.Id = b.Client_Id
;xOJb*N0 17 And a.dfId = 4ITPUB个人空间(cHodu6cy
18 UnionITPUB个人空间M{v7X
ohcQ
19 Select *ITPUB个人空间-z.A
d#C
?zt
20 From tb_test1 aITPUB个人空间m)zFg)WvZ'u2i-| T
21 Where a.dfId = 4
P\:U-pZ Dl6r@0 22 And a.Created_Date <ITPUB个人空间k0hQL0DX&b
23 (Select Max(To_Date) From tb_test1_abc_Report) - 1ITPUB个人空间m MbVG
24 And a.Id Not In
o6]2_#q'?PT0 25 (Select Distinct Client_Id From tb_test1_Rolling_Daily_Repo
-Mvx-d3^s0))
W_a-P'k0Y._*E?0 26 Order By Login;
3185 rows selected.
jJp1lXh
G.s8X0Execution PlanITPUB个人空间~"jq'C7\],Y+s+uh-v
----------------------------------------------------------ITPUB个人空间"Ftxt/x"J
0 SELECT STATEMENT ptimizer=CHOOSE (Cost=24 Card=171 Bytes=10
]
yBbN*\0 602)
1 0 WINDOW (SORT) (Cost=24 Card=171 Bytes=10602)ITPUB个人空间yWa.zo_
2 1 VIEW (Cost=24 Card=171 Bytes=10602)ITPUB个人空间EnIG!G-PJGee
3 2 SORT (UNIQUE) (Cost=24 Card=171 Bytes=24700)ITPUB个人空间:uf6\SI.N
4 3 UNION-ALLITPUB个人空间'Ar%dH4coe.g
5 4 HASH JOIN (Cost=10 Card=19 Bytes=3268)
}#NjeL/NdO8}0 6 5 VIEW (Cost=3 Card=19 Bytes=665)ITPUB个人空间n;\UC;uDk
7 6 WINDOW (SORT PUSHED RANK) (Cost=3 Card=19 Byte
d~ F_i1m9h0 s=228)
8 7 INDEX (FULL SCAN) OF 'IDX_CRDR_CLIENT_GAME_E
j+G"J;U)nUY-n
U0 VENT' (UNIQUE) (Cost=1 Card=19 Bytes=228)
9 6 SORT (AGGREGATE)
?p-e oGj0 10 9 INDEX (FULL SCAN (MIN/MAX)) OF 'FKINDEX5_711ITPUB个人空间*]3b%Lx1yK(nG
' (NON-UNIQUE) (Cost=3 Card=2156978 Bytes=17255824)
11 5 TABLE ACCESS (FULL) OF 'tb_test1' (Cost=6 Card=
]q'`
Id0 3189 Bytes=436893)
12 4 HASH JOIN (ANTI) (Cost=8 Card=152 Bytes=21432)
G:mQ4hI0a p!f_9o0 13 12 TABLE ACCESS (FULL) OF 'tb_test1' (Cost=6 Card=
L ]b1J%fF"m0 159 Bytes=21783)
14 13 SORT (AGGREGATE)