网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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中的数据库、服务名、实例.
.Oracle8I系统管理员资料.
.为最佳性能而调优 Red Hat(4).
.Oracle数据库10g产品特性简介.
.Oracle8 优化技术:安装.
.UNIX工作站对远程ORACLE FOR Net.
.oracle数据库PL/SQL序列(组图).
.Compress table 的内部存储细节研.
.Oracle数据库字符集问题解析 zz.
.Oracle 中巧用FORMS_DDL.
.oracle中获取表空间ddl语句.
.Oracle9i Supplied PL/SQL Packa.
.MYSQL到ORACLE程序迁移的注意事项.
.在Oracle/2000中调用Windows API.
.oracle9i在Red Hat Linux7.3上的.
.DBMS_JOB程序包用法.
.ORACLE9i新特性 索引跳跃式扫描的.
.Oracle 数据安全问题面面观(2).
.删除一个Oracle用户的对象.
.Oracle监控数据库性能的SQL汇总.

Oracle客户端编程

发表日期:2008-2-9



  一、绑定变量
  使用绑定变量可以减少Oracle对语句的硬分析,加快语句的执行。
  
  样例程序:VB
  
  没有使用绑定变量执行1000次 Insert 命令耗时 8.36 秒
  使用绑定变量执行1000次 Insert 命令耗时 2.56 秒
  使用绑定变量的速度为不使用绑定变量的 30%,假如在大量用户集中执行此命令的情况下,效果更加明显。
  
  为什么使用绑定变量可以加快数据?
  1、减少了Oracle对语句的分析。Oracle可以在缓存中直接使用上次已分析过的语句。
  2、不需要对语句执行查询路径分析。直接使用上次的查询路径。
  
  开发中注重事项:
  1、编码变得烦琐,但为了以后没有人找你麻烦,还是烦琐一些好!
  2、RDO 使用 rdoQuery 对象,ADO使用 Command 对象。Java 使用 PreparedStatement。各种开发语言均有此类对象。
  
  二、正确使用索引
   语句 执行时间
  错误 SELECT *
   FROM xxy x
   WHERE x.编号=1000000019 1.515秒
  错误 SELECT *
   FROM xxy x
   WHERE upper(X.编号)='1000000019' 1.64秒
  正确 SELECT *
   FROM xxy x
   WHERE x.编号='1000000019' 0.062秒
  正确的语句与错误语句有何不同之处?
  
  此例说明Oracle的隐式转换数据功能可能误导开发员,使开发员写出蹩脚的SQL语句。
  
  开发中注重事项:
  1、 正确使用索引字段,并要注重查询语句中的要害字类型与数据库中索引字段的字段类型一致。
  2、 不要在索引上使用函数。
  3、 尽可能不使用Like、Is Null语句,而使用 >、< 代替。
  
  三、 FROM语句
  语句执行时间
  错误 SELECT *
   FROM d_fs fs,djb dj,xxyb xxy
   WHERE dj.方式=fs.方式
    AND fs.类型='什么类型'
    AND dj.编号=xxy.编号 24.844秒
  正确 SELECT *
   FROM djb dj,xxyb xxy,d_fs fs
   WHERE dj.方式=fs.方式
    AND fs.类型='什么类型'
    AND dj.编号=xxy.编号 4.453秒
  
  Oracle的优化方式分为基于成本和基于规则的优化方式。
  在使用基于规则的优化方案的时候,应将记录数小的表写在FROM语句的后面。
  
  四、 EXISTS、NOT EXISTS
  尽量不使用 In、Not In,而使用 Exists、Not Exists代替。
   语句 执行时间
  错误 SELECT *
   FROM cfxb xd
   WHERE xd.日期 BETWEEN SYSDATE-30 AND SYSDATE
    AND xd.编号 NOT IN (SELECT zb.编号
    FROM cfzb zb) 3.281秒
  正确 SELECT *
   FROM cfxxb xd
   WHERE xd.日期 BETWEEN SYSDATE-30 AND SYSDATE
    AND NOT EXISTS (SELECT 1
    FROM cfzb zb
    WHERE zb.编号=xd.编号) 0.172秒
  
  刚开始使用Exists语句不如In语句直观,大家习惯一下就可以了。
  
  五、 其它事项
  a) 在select、insert语句中不答应使用 * 代替所有字段,应明确指定字段名称。
  b) SQL语句中使用到多个表,应在select语句中明确使用表别名引用表中的字段。
上一篇:如何连接oracle数据库及故障解决办法 人气:662
下一篇:Oracle的同步复制研究 人气:705
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐