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

Oracle参数调优

1)在delphi中,经常有人写SQL并传入到数据库中执行,一般都是把sql拼出来,如下:
sSql := 'select * from ContainerStateH where container like '+QuotedStr('%'+trim(Edit2.Text)+'%') +' order by BeginDay';
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sSql);
ADOQuery1.Open;
但是从oracle数据库角度考虑,这样会影响执行效率.应该把sql的参数通过绑定方式实现,如下:
sSql := 'select * from ContainerStateH where container like :id order by BeginDay';
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sSql);
ADOQuery1.Parameters.parambyname('id').Value:='123456';
ADOQuery1.ExecSQL;
这样的话到oracle后台跟踪出来的都是写参数变量名称,但执行效率提高不少. 
2)另外还有种办法就是修改oracle的session表中的cursor_sharing参数,默认为EXACT,改为FORCE,这样以后所有where后面带条件的参数都被转化为参数变量,提高数据库执行效率.但是改完之后应用程序中的select max(beginday) from *** 后面不带group by语句就会出现异常
alter session set cursor_sharing=FORCE


相关文档:

常用的一些ORACLE命令

查找数据库中所有字段  以对应的表
select C.column_name,C.TABLE_NAME from dba_tab_columns C where owner=''
查每个科目class 分数scro前三名
select id, name, class, scro
   from (select row_number() over(partition by class order by scro desc)  cnt,
    &n ......

oracle建立触发器 实现自增实例

create table TN_TEST(
       username varchar2(32),
       userpass varchar2(32),
       version  number
)
要求一:
TN_TEST表中字段version
每次修改TN_TEST表则讲version自动加一
建立触发器语句:
crea ......

oracle数据库的导入导出

经常用到的数据库导入导出,每次用都要查询,把语句保留在这边方便以后查阅
//快速导入数据到另一个数据库的语句
例如:
imp tms/tms@TMS_192.168.0.104 file=c:\1.dmp buffer=30720 show=no ignore=yes grants=yes rows=yes full=yes
路径为Oracle路径
imp tms/tms@TMS file=d:\tmsbf_all.dmp buffer=30720 show=no ......

oracle 分析作业有时候偷懒

2010年5月25日 富士康11跳楼自杀的这天。传闻oracle 10g r203自动分析作业不是很靠谱,具体为什么不得而知!今天老库的机器要被搬走,看到上面有个目录是DBA导数据而用的,还留着老库迁到新库的DMP数据文件309G。想老库真正用到的表比较少,数据量会小很多。为了知道具体量,所以自己试玩下EXP导数据。先试了下用户表590万1. ......

oracle用户权限及角色

每个Oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。Oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。
    数据库系统权限(Dat ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号