易截截图软件、单文件、免安装、纯绿色、仅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 表空间操作

oracle表空间操作详解
  1
  2
  3作者:   来源:    更新日期:2006-01-04 
  5
  6 
  7建立表空间
  8
  9CREATE TABLESPACE data01
 10DATAFILE '/ora ......

ORACLE数据库中关于游标和记录表的速度测试

1
、问题提出
     
在我们日常的数据库操作尤其是存储过程设计中,经常有记录表之类的集合、显示游标等操作,但这两种数据处理方式在速度及性能上有什么区别呢?
2
、测试方法
   

ORACLE
数据库中创建一个数据表,然后对创建的数据表分别插入
100
条、
1000
条 ......

oracle导入导出操作

oracle导出导入数据操作
Oracle数据导入导出imp/exp命令
    Oracle 数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把 dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用 ......

oracle中dump函数

问题:
1. oracle中number,char/varchar,date等数据类型是怎么存储的?字节流是什么样的?
2. 各种数据类型占用的字节长度是多大?
SELECT dump(1), DUMP(123456), DUMP(-123456), DUMP(1234567890123456) -- 整数
--SELECT DUMP(123456.789), DUMP(-123456.789), dump(1.234567890123456789E15), dump(1234567890123 ......

64位win7安装使用PL/SQL developer连接Oracle 10g备忘

在网上搜索了半天,主要原因是oci.dll是64位的,而PL/SQL developer只有32位的,在使用64位oci.dll文件时出错.
在网上找了很多资料,最方便的解决方案如下:
1.到oracle官网下载Oracle InstantClient,我下的是instantclient-basiclite-win32-10.2.0.4.zip,把它解压缩到
oracle安装目录product下,其中还有一个目录为10.2.0. ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号