您正在查看 "Oracle" 分类下的文章 2010年10月19日 星期二 13:47 参考 http://www.itpub.net/viewthread.php?tid=845777&extra=&page=1
Analyze Statement The ANALYZE statement can be used to gather statistics for a specific table, index or cluster. The statistics can be computed exactly, or estimated based on a specific number of rows, or a percentage of rows:
ANALYZE TABLE employees COMPUTE STATISTICS; ANALYZE INDEX employees_pk COMPUTE STATISTICS;
ANALYZE TABLE employees ESTIMATE STATISTICS SAMPLE 100 ROWS; ANALYZE TABLE e |
2010年08月19日 星期四 14:54 SQL语句优化方法30例
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:
1. /*+ALL_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
例如:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=’SCOTT’;
2. /*+FIRST_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.
例如:
SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=’SCO |
2010年08月02日 星期一 10:38 第一种方式:通过命令来修改最大进程数
查看ORACLE最大进程数:
SQL> select count(*) from v$session #连接数
SQL> Select count(*) from v$session where status='ACTIVE' #并发连接数
SQL> show parameter processes #最大连接
SQL> alter system set processes = value scope = spfile;重启数据库 #修改连接
unix 1个用户session 对应一个操作系统 process
而 windows体现在线程 |
2010年07月30日 星期五 17:38 昨天下午,开发人员突然说不能连接数据库了,提示相关的错误
OERR: ORA-12519 TNS:no appropriate service handler found
客户端连接间歇性失败,报错ORA-12519
Cause: the listener could not find any available service handlers that are
appropriate for the client connection.
Action: run "lsnrctl services" to ensure that the instance(s) have registered
with t |
2010年06月01日 星期二 13:59 --增加表空间
alter tablespace 表空间名称 add datafile '文件路径/文件名.dbf' size 文件大小M;
其中表空间存储文件的存储路径可以通过语句select * from dba_data_files 可以查询到。
|
2009年12月30日 星期三 15:52 select TRUNC(next_day(sysdate, '星期一')) - 7,
TRUNC(next_day(sysdate, '星期一')) - 1
from dual;
|
2009年12月30日 星期三 10:05 这段代码同样是执行了1000条insert语句,但是每一条语句都是不同的,因此ORACLE会把每条语句硬解析一次,其效率就比前面那段就低得多了。如果要提高效率,不妨使用绑定变量将循环中的语句改为
sqlstr:='insert into 测试表 (:i,:i+1,:i*1,:i*2,:i-1) ';
execute immediate sqlstr using i,i,i,i,i;
这样执行的效率就高得多了。
我曾试着使用绑定变量来代替表名、过程名、字段名等,结果是语句错误,结论就是绑定变量不能当作嵌入 |
2009年11月25日 星期三 16:38 在数据清洗时为了方便查看当前运行的状态,特意在存储过程里面添加了一些日志。通过查看日志可以方便的看到当前运行到哪里,但是这输出的日志不能跟过程使用相当的事物(即不管清洗过程是成功还是失败,日志必须得成功写到数据库里面)。Oracle的独立事物就能帮助我们解决这个问题。
下面是方法模型:
procedure AddError(i_runid number, --运行号码
i_append varchar2, --附 |
2009年11月04日 星期三 14:33
今天建数据表,采用了Oracle 10g数据库,用PowerDesinger 12建模型,概念模型转成物理模型,我看Preview时,就奇怪的发现所有的drop 、create等操作到表名、字段名、外键名时,都加上了双引号,这个真是神奇啊。打开Database -> Edit Current DBMS ,出现一个编辑界面,在右边的框里,找到script分节点,再依次找到sql -> format 节点,下面有一个这样的名称的属性:CaseSensitivityUsingQuote,把这个属性的值设为“NO”,再看生成的script,就全部双引号都去掉了。
|
2009年10月19日 星期一 17:19 Oracle的优化器有两种优化方式,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CBO),在Oracle8及以后的版本,Oracle强列推荐用CBO的方式
RBO方式:优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引。
CBO方式:它是看语句的代价(Cost),这里的代价主要指Cpu和内存。优化器在判断是否用这种方式时,主要参照的是表及索引的统计信息。统 |
2009年10月19日 星期一 17:07 首先用拥有DBA权限的用户登录Oracle
然后新建SQL窗口执行下面语句:
select NUM_ROWS,TABLE_NAME,t.owner,t.tablespace_name from dba_all_tables t order by nvl(t.num_rows,0) desc
|
2009年10月10日 星期六 11:11 0、数据库参数属性
col PROPERTY_NAME format a25
col PROPERTY_VALUE format a30
col DESCRIPTION format a100
select * from database_properties;
select * from v$version;
1、求当前会话的SID,SERIAL#
SELECT Sid, Serial# FROM V$session
WHERE Audsid = Sys_Context('USERENV', 'SESSIONID');
2、查询session的OS进程ID
SELECT p.Spid "OS Thread", b.NAME "Name-User", s.Program, s.Sid, s.Serial#,s.Osuser, s. |
2009年10月09日 星期五 9:46 #!/bin/bash
###############################################
#
# 自动导出developer用户的所有对象
#
# _DATE_NOW: 得到当前日期的8位字符串
# _EXPDIRECTORY: 数据库下创建的目录,不等同于系统的目录
# _DIRECTORY:用于存放导出的文件的目录
# _DUMPFILE: 导出的文件名
# _LOGFILE:导出日志文件名
#
# Created by UltraDBA 20080326
#
############################# |
2009年10月09日 星期五 9:44 2009年10月09日 星期五 9:43 | | |