网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle调优(入门及提高篇).
.OCIEnvCreate()多线程初始化的模.
.Oracle Job任务异常原因分析及其.
.感受“酷”的力量.
.如何使用Ruby脚本调用Oracle存储.
.实现数据仓库的upsert.
.下一代数据库发展的四大趋势.
.ORACLE性能调优原则上篇(列表).
.如何在oracle存储过程中返回游标.
.Oracle初学者必知的100个问题(上).
.如何使用MS SQL7的REMOTE SERVER.
.oracle到sqlserver的数据转换资料.
.Oracle 9i 的增强型内存使用率查.
.如何在硬碟建置Linux系统之关於 .
.使用exp工具进行数据库备份及恢复.
.TestKing Oracle 1z0-101 V3.
.Oracle的实体化视图管理.
.ORACLE入门之改数据库的归档方式.
.DBA_Data_Files & DBA_Tablespac.
.Oracle Database 10 g : 为 DBA .

提高查询主、从表速度的一个方法

发表日期:2008-2-9



  有两个主、从表 main_tab,detail_tab
  主表记录大概是600多万条,从表记录大概2000万条,两表相互关联的字段有4个:
     prod_id,     --产品编号
     yyyymmdd,     --日期
     paper_no,     --单号
     io        --进出代号
     
  另外在主表上还有一个code字段标识单据的有效性,
   
  假如想查出某一段时间的有效的单据中(或者某些产品)的明细资料,一般的做法:
     select 所需字段
      from detail_tab a,main_tab b
      where a.prod_id = b.prod_id
       and a.yyyymmdd = b.yyyymmdd
       and a.paper_no = b.paper_no
       and a.io = b.io
       and b.yyyymmdd = '指定日期'
       and a.io = '进仓'
       and b.code = '有效的';
       
  这个查询的速度会因为这两个表过于巨大而非常的缓慢,
   
  现在有一个解决办法,就是给两个表都加上条件,即使是两个表关联的字段也加:
     select 所需字段
      from detail_tab a,main_tab b
      where a.prod_id = b.prod_id
       and a.yyyymmdd = b.yyyymmdd
       and a.paper_no = b.paper_no
       and a.io = b.io
       and b.yyyymmdd = '指定日期'
       and a.yyyymmdd = '指定日期'
       and a.io = '进仓'
       and b.io = '进仓'
       and b.code = '有效的';
       
  这样的速度要比前一种快了至少10倍以上。
上一篇:使用MD5编码实现数据库用户密码字段的加密 人气:1881
下一篇:查看本用户下的各种对象的SQL脚本 人气:600
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐