易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle性能优化与Delphi代码

Oracle性能优化与Delphi代码

刚学了点oracle方面的知识,感觉以前写代码只凭喜好写,完全没有深究缘由,导致在内行人看来,写的都是垃圾代码,现在就把学到的一些东西写出来,也算是给刚入门的朋友一点帮助吧。
以前,写数据库访问代码,感觉很简单,不就是sql语句嘛,所以什么语句都是这样写:
A:
 
qry1.Close;
  qry1.SQL.Text := edt1.Text ;
  qry1.Open
;
感觉挺好,语句自己拼,拼好了,直接执行。
还有另外一种写法:
B:
  qry1.Close;
  qry1.SQL.Text := edt1.Text
;
  qry1.Parameters.ParamByName('vvv').Value := edt2.Text ;
 
qry1.Open
;
感觉这样写也是达到一样的结果,而用参数的方法,感觉很麻烦,多余,edt1.Text里变量还都得写成参数,所以从来不这样写,似乎也看不出和A方法有什么区别,只是更多了些麻烦。
最近学了点oracle性能优化方面的知识,知道了oracle的共享池,及其对性能的影响。共享池保存的是最近使用的sql语句,如果有相同的sql语句在共享池中,就不会再做分析、生成执行计划,效率就会提高很多,但是select
* from tableA where aa='a'和select * from tableA where
AA='a',会被认为是不同的sql语句,oracle会检查共享池里有没有完全相同的语句,没有则分别做分析、生成执行计划,虽然实质上是一样的sql语句。
所以,可以通过绑定变量的方式,使这些只是条件不同的语句,可以使oracle能够重复利用执行计划。
测试一下。
在pl/sql里的sql windows里,执行语句:
select sql_text from v$sqlarea where sql_text
like '%select * from abc where%'
查看共享池中的sql语句,返回的结果只有一行:
select sql_text
from v$sqlarea where sql_text like '%select * from abc where%'
然后执行语句:
select * from abc where ff =
1234
然后再查看共享池中的sql语句,看到了,这回结果集有两行返回:
select sql_text from v$sqlarea where
sql_text like '%select * from abc where%'
select * from abc where ff =
1234
执行:
select * from abc where ff =
345
然后再查看共享池中的sql语句,看到了,这回结果集有三行返回:
select sql_text from v$sqlarea where
sql_text like '%select * from abc where%'
select * from abc where ff =
1234
selec


相关文档:

oracle 9i 下载

要找Oracle 9i for Linux挺麻烦的,干脆自己留个记录比较方便。
Oracle9i Database Release 2 Enterprise/Standard/Personal Edition for Windows NT/2000/XP
http://download.oracle.com/otn/nt/oracle9i/9201/92010NT_Disk1.zip
http://download.oracle.com/otn/nt/oracle9i/9201/92010NT_Disk2.zip
http://downlo ......

Oracle 10g 要点整理 之 体系结构和数据字典

1连接数据库实例
(1)用户进程:软件,SQL*Plus,使用Oracle Net Services(网络服务)与数据库通讯
(2)Oracle监听器:listener.ora,定义了数据库实例名,路径,可以使用的协议,端口
(3)Oracle网络客户:tnsnames.ora,定义了通讯协议,端口,服务器地址
 
2 服务器进程
  负责用户进程和Oracle实例 ......

Oracle listener日志文件的处理

随着时间和连接,Oracle的listener.log会不断增长,这时就需要我们对其进行处理。若试图直接在listener启动时直接删除,可能会收到报错信息类似:The process cannot access the file because it is being used by another process。若直接停掉监听再删除,对于生产库,这基本是不被允许的操作,在Unix下面当然可以rm,但这个文 ......

【Oracle】SQL优化的重要工具 AUTOTRACE

【AUTOTRACE】SQL优化的重要工具--AUTOTRACE
提到SQL优化,不能不提AUTOTRACE的强大功能。使用起来非常便捷,不过在是使用之前,需要做一些配置的工作。简要的描述一下这个过程,供没有使用过的朋友参考。
1.使用sys用户执行plustrce脚本
sys@ora10g> @?/sqlplus/admin/plustrce
sys@ora10g> drop role plustrace ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号