环境:Solaris9+oracle9024
SUN V890:16G内存,4个至强1.2GCPU
现在建了一个表:用于学生查询历年成绩,速度太慢,请高手帮忙优化。
表的脚本:
CREATE OR REPLACE FORCE VIEW NEWJW.XS_KCCJB_VIEW
(ZXJXJHH, KCH, KXH, XH, FAJHH,
KCSXDM, KSLXDM, CXBKBZ, KSSJ, KCCJ,
DJCJ, JDCJ, BFDJCJ, BZCJ, TCJ,
TDKCH, BZ, KCM, YWKCM, XF,
XS, FAMC, JHMC, XNDM, XQLXDM,
XQDM, XQM, KCSXMC, DJM, KSLXMC,
XM, XSM, XDFSDM, RXKLXDM, CJLRFSDM,
XQLXM)
AS
SELECT a.zxjxjhh, a.kch, a.kxh, a.xh, a.fajhh, a.kcsxdm, a.kslxdm,
a.cxbkbz, a.kssj, a.kccj, a.djcj, a.jdcj, a.bfdjcj, a.bzcj, a.tcj,
a.tdkch, a.bz, b.kcm, b.ywkcm, b.xf, b.xs, c.famc, c.jhmc, d.xndm,
d.xqlxdm, d.xqdm, e.xqm, f.kcsxmc, i.djm, h.kslxmc, j.xm, j.xsm,
a.xdfsdm, a.rxklxdm, a.cjlrfsdm, k.xqlxm
FROM xs_kccjb a,
code_kcb b,
jh_fajhb c,
jh_zxjxjhb d,
code_xqb e,
code_kcsxb f,
code_cjdj i,
code_kslxb h,
code_xqlxb k,
xs_xjb_view j
WHERE a.kch = b.kch(+)
AND a.fajhh = c.fajhh(+)
AND d.zxjxjhh(+) = a.zxjxjhh
AND d.xqdm = e.xqdm(+)
AND d.xqlxdm = e.xqlxdm(+)
AND a.kcsxdm = f.kcsxdm(+)
AND a.djcj = i.djcj(+)
AND a.kslxdm = h.kslxdm(+)
AND c.xqlxdm = k.xqlxdm(+)
AND a.xh = j.xh(+);
索引脚本:
CREATE UNIQUE INDEX NEWJW.PK_XS_KCCJB ON NEWJW.XS_KCCJB
(ZXJXJHH, KCH, XH, KSSJ)
LOGGING
TABLESPACE NEWJW
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
表中目前记录有:
SQL> select count(*) from xs_kccjb_view
2 ;
COUNT(*)
----------
374060
请问应该如何优化,现在查询时间是2:51,或者更慢,希望高手给建议。谢谢!