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中处理日期大全
TO_DATE格式
Day:
dd number 12
dy abbreviated fri
day spelled out friday
ddspth spelled out, ordinal twelfth
Month:
mm number 03
mon abbreviated mar ......
1、使用oracle用户登录,连接数据库
[oracle@wuzj ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Feb 26 12:06:29 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected.
//查看用户
SQL> select username,password from dba_users;
......
create table TN_TEST(
username varchar2(32),
userpass varchar2(32),
version number
)
要求一:
TN_TEST表中字段version
每次修改TN_TEST表则讲version自动加一
建立触发器语句:
crea ......
背景:在windows 2003 server上安装了Oracle 9.2.0.1.0,现打算将其升级到9.2.0.8版本。
1.升级oracle(administrator用户权限)
(1)到metalink下载升级压缩包,patch号为4547809,压缩包名称为 p4547809_92080_WINNT.zip,for windows 32bit。
(2)解压缩zip,下边包含一个Disk1和readme.html文件。 ......
Oracle 是一个庞大的系统,里面的知识点很多,在学习的时候,看到一些知识点,就贴了下来,尽不知中贴了这么多,就先做个小结吧。 里面有的知识点已经单独拿出来写成单篇的blog(http://blog.csdn.net/tianlesoftware)了。有的还没有进行整理。 好记性不如烂笔头,不过我用的不是笔。 ^_^ ......