在下用delphi+Oracle开发了一个小的查询程序,
用了3个UNION连接4个select 语句,用了拼字符串的形式,发现查询数据慢死了,
各位有经验的有什么好方法可共享一下?????????
用了3个UNION连接4个select 语句,用了拼字符串的形式,发现查询数据慢死了,
各位有经验的有什么好方法可共享一下?????????
解决方案 »
- oracle 10g 连接 Sql 2005 错误提示NCR-000002 官方解释 调用函数错误
- 关于Oracle sequence的问题
- 执行计划物理读
- 关于FORALL 批量提交问题
- toad7.3中点referential和used by 查看表关系
- 关于oracle上在两个不同机器上的数据库数据的导入问题
- 如何查找long中的数据???
- 数据库的名字更改了,导致DBLINK无效,使用DBLINK的PLSQL不能正常工作。
- 怎么删表中的一个column?
- 学习数据库优化,有一句话没看懂,来人帮解答
- 关于Oracle的问题(江湖告急)
- 如何在linux下使用imp/exp命令,请详细说明一下,感谢啦~~
UNION
SELECT gzb.GZCLR,'无' AS MKJMC,gzb.LX,gzb.JGLX,gzb.CLJG,gzb.DHHM,gzb.YHMC,gzb.LXDH,gzb.GZXX1,gzb.CLRQ,gzb.CLSJ FROM GZB where gzb.ZT='运行' and (gzb.CLRQ between to_date('2008-10-28 ','yy-mm-dd') and to_date('2008-10-28 ','yy-mm-dd')) and gzb.dhhm not in (select dhhm from yhxxb) and gzb.LX='普通' order by GZCLR,gzb.LX,gzb.JGLX
UNION
SELECT gzb.GZCLR,mkjb.mkjmc,gzb.LX,gzb.JGLX,gzb.CLJG,gzb.DHHM,gzb.YHMC,gzb.LXDH,gzb.GZXX1,gzb.CLRQ,gzb.CLSJ FROM GZB,KD,MKJB where KD.SSJB=mkjb.mkjh AND KD.dhhm=gzb.dhhm and gzb.ZT='运行' and (gzb.CLRQ between to_date('2008-10-28 ','yy-mm-dd') and to_date('2008-10-28 ','yy-mm-dd')) and gzb.LX='普通' order by GZCLR,mkjb.mkjmc,gzb.LX,gzb.JGLX
UNION
SELECT gzb.GZCLR,'无' AS MKJMC,gzb.LX,gzb.JGLX,gzb.CLJG,gzb.DHHM,gzb.YHMC,gzb.LXDH,gzb.GZXX1,gzb.CLRQ,gzb.CLSJ FROM GZB where gzb.ZT='运行' and (gzb.CLRQ between to_date('2008-10-28 ','yy-mm-dd') and to_date('2008-10-28 ','yy-mm-dd')) and gzb.dhhm not in (select dhhm from KD) and gzb.LX='普通' order by GZCLR,gzb.LX,gzb.JGLX对ORACLE不很熟悉?哪位帮我优化优化或者建立索引什么的?
可以考虑把你的拼字符串那段建个函数索引。
如何建立函数索引??我的语句都在上面了,老打帮忙呀?对Oracle不熟悉,但又必须用,是人家的库
create unique index idx_stuid on student(stuid);//unique 指明是唯一索引,idx_stuid 索引名,on指明在哪张表上创建,student 表名,stuid 建立索引的列名
组合索引:
create index idx_empnoanddepno on emp(empno,deptno);
如何使用:
select * from emp where empno=7899 and deptno=10;//当使用的是时候会自动调用该索引以提高查询效率。
位图索引:
适用于重复度比较高的列,例如:职位,颜色等,会引用rowid,直取物理地址,提高查询速度,但bitmap列对应数据条数,不利于查询过长记录条数的表。
索引组织表:
create table indorg
(
vencode int primary key,
venname varchar2(20)
) organization index;//直接在主键上建立索引,查询速度会非常快,但前提是一定要有主键。
都不用order by 感觉也不是很快,
UNION是需要的,不能少
整个函数索引怎么弄???可以有明显提高速度吗?