oracle dbms_stats 包
oracle 8i 以后加处的功能,Oracle专家可通过一种简单的方式来为CBO收集统计数据。目前,已经不再推荐你使用老式的分析表和dbms_utility方法来生成CBO统计数据。那些古老的方式甚至有可能危及SQL的性能,因为它们并非总是能够捕捉到有关表和索引的高质量信息。 CBO使用对象统计,为所有SQL语句选择最佳的执行计划。
dbms_stats能良好地估计统计数据(尤其是针对较大的分区表),并能获得更好的统计结果,最终制定出速度更快的SQL执行计划。
下边给出了dbms_stats的一次示范执行情况,其中使用了options子句。
execdbms_stats.gather_schema_stats( -
ownname => 'SCOTT', -
options => 'GATHER AUTO', -
estimate_percent => dbms_stats.auto_sample_size, -
method_opt => 'for all columns size repeat', -
degree => 15 -
)
为了充分认识dbms_stats的好处,你需要仔细体会每一条主要的预编译指令(directive)。下面让我们研究每一条指令,并体会如何用它为基于代价的SQL优化器收集最高质量的统计数据。
options参数
使用4个预设的方法之一,这个选项能控制Oracle统计的刷新方式:
gather——重新分析整个架构(Schema)。
gather empty——只分析目前还没有统计的表。
gather stale——只重新分析修改量超过10%的表(这些修改包括插入、更新和删除)。
gather auto——重新分析当前没有统计的对象,以及统计数据过期(变脏)的对象。注意,使用gather auto类似于组合使用gather stale和gather empty。
注意,无论gather stale还是gather auto,都要求进行监视。如果你执行一个alter table xxx monitoring命令,Oracle会用dba_tab_modifications视图来跟踪发生变动的表。这样一来,你就确切地知道,自从上一次 分析统计数据以来,发生了多少次插入、更新和删除操作。
estimate_percent选项
以下estimate_percent参数是一种比较新的设计,它允许Oracle的dbms_stats在收集统计数据时,自动估计要采样的一个segment的最佳百分比:
estimate_percent => dbms_stats.auto_sample_size
要验证自动统计采样的准确性,你可检视dba_tables sample_size列。一个有趣的地方是,在使用自动采样时,Oracl
相关文档:
很多朋友在使用ORACLE进行后台数据存储时都可能遇到这样的问题,哪就是,设计的数据库中不可避免的有一两个比较大的数据表,有时可能更多,如果对这些数据表只进行INSERT操作,哪还比较好一些,可是如果要经常进行数据更新(UPDATE)和数据选取(SELECT),在数据量比较少时,程序还能过的去,如果数据量一大,上了百万数量 ......
v$session + v$session_wait (在10g里功能被整合,凑合算1个吧.)
v$process
v$sql
v$sqltext
v$bh (更宁愿是x$bh)
v$lock
v$latch_children
v$sysstat
v$system_event
按组分的几组重要的性能视图
1。System 的 over view
v$sysstat , v$system_event , v$parameter
2。某个session 的当前情况
v$process , ......
88. CHR()的反函数是?
ASCII()
SELECT CHAR(65) from DUAL;
SELECT ASCII('A') from DUAL;
89. 字符串的连接
SELECT CONCAT(COL1,COL2) from TABLE
SELECT COL1||COL2 from TABLE
90. 怎么把select出来的结果导到一个文本文件中?
SQL>SPOOL C:\ABCD.TXT;
......
ORACLE內部函數篇 字符串
204. 如何得到字符串的第一個字符的ASCII值?
ASCII(CHAR)
SELECT ASCII('ABCDE') from DUAL;
結果: 65
205. 如何得到數值N指定的字符?
CHR(N)
SELECT CHR(68) from DUAL;
結果: D
206.  ......
oracle8的ROWID结构
2004-04-23 15:18 pm
来自:Linux文档
地址:http://linux.sheup.com/linux/linux3983.htm
1、为什么使用ROWID
ORACLE把ROWID作为B-树和其内部算法标示ROW的唯一标示。
在ORACLE8以前的版本中,ROWID标示FILE、BLOCK、ROW NUMBER,只用一个数字代
表FILE号。
在ORACLE8中,一个DATAFILE有两 ......