- 浏览: 663538 次
- 性别:
- 来自: 杭州
-
文章分类
最新评论
-
HkEndless:
不好意思,请问这确定是回调机制吗。你的例子中只是将接口的实现类 ...
Spring CallBack回调机制介绍 -
hanmiao:
写的真乱啊,完全不知所云...
Java如何调用可执行文件和批处理命令 -
junia_1:
junia_1 写道 shock: ...
为什么要使用EJB -
junia_1:
shock:
为什么要使用EJB -
coollifer:
不错
SQL Server数据导入到Oracle中的方法
简单看一下clustering_factor 简单的说CLUSTERING_FACTOR 用于INDEX 的有序度和表的混乱度之间比较 b*tree index是经过排序的 例如 INDEX中 记录的第一个rowid指向 表所在DATAFILE 中 BLOCK#1 第1行 计数器 记为1,第2个rowid 指向 BLOCK#2 由于改变了块 所以 计数器加1 ,INDEX 第3个rowid 指向BLOCK#2 块没变 所以计数器还为2,接着沿INDEX执行 第4个rowid 指向BLOCK#1 块又变了计数器加1 计数器对应着CLUSTERING_FACTOR 计数器每次从一个块到另一个新块时候加1 这样CLUSTERING_FACTOR也加一 所以clustering_factor可以描述数据在表中的散布方式 如果clustering_factor接近表中的行数,大多行都不在同一个块中,分布太散 当clustering_factor接近表中的块数,说明数据集中有序 当用INDEX 获取一行以上数据时(INDEX RANGE SCAN),需要遍历INDEX的一部分 叫INDEX的 X%,扫描INDEX 时必须逐行的读取表,那么当遍历INDEX 的 X%时,转换表块的次数就等于clustering_factor 的 X% 另外clustering_factor对于oracle 优化器计算index cost 有直接关系 cost = blevel + ceiling(leaf_blocks * effective index selectivity) + ceiling(clustering_factor * effective table selectivity) 今天读troubleshooting oracle performance 找到一个直接获取clusering_factor的函数脚本特此记录,仔细看可以发现 计算方式与上面的理论是一样的 SQL> show user USER is "XH" SQL> create table t3 (a int ,b int); Table created. SQL> declare 2 begin 3 for i in 1..10000 loop 4 insert into t3 values(i,i+1); 5 end loop; 6 commit; 7 end; 8 / PL/SQL procedure successfully completed. SQL> create index t3_ind on t3(a); Index created. SQL> select clustering_factor from user_ind_statistics where index_name='T3_IND'; CLUSTERING_FACTOR ----------------- 18 SQL> CREATE OR REPLACE FUNCTION clustering_factor ( 2 p_owner IN VARCHAR2, 3 p_table_name IN VARCHAR2, 4 p_column_name IN VARCHAR2 5 ) RETURN NUMBER IS 6 l_cursor SYS_REFCURSOR; 7 l_clustering_factor BINARY_INTEGER := 0; 8 l_block_nr BINARY_INTEGER := 0; 9 l_previous_block_nr BINARY_INTEGER := 0; 10 l_file_nr BINARY_INTEGER := 0; 11 l_previous_file_nr BINARY_INTEGER := 0; 12 BEGIN 13 OPEN l_cursor FOR 14 'SELECT dbms_rowid.rowid_block_number(rowid) block_nr, '|| 15 ' dbms_rowid.rowid_to_absolute_fno(rowid, '''|| 16 p_owner||''','''|| 17 p_table_name||''') file_nr '|| 18 'FROM '||p_owner||'.'||p_table_name||' '|| 19 'WHERE '||p_column_name||' IS NOT NULL '|| 20 'ORDER BY ' || p_column_name; 21 LOOP FETCH l_cursor INTO l_block_nr, l_file_nr; 22 23 EXIT WHEN l_cursor%NOTFOUND; 24 IF (l_previous_block_nr <> l_block_nr OR l_previous_file_nr <> l_file_nr) 25 THEN 26 l_clustering_factor := l_clustering_factor + 1; 27 END IF; 28 l_previous_block_nr := l_block_nr; 29 l_previous_file_nr := l_file_nr; 30 END LOOP; 31 CLOSE l_cursor; 32 RETURN l_clustering_factor; 33 END; 34 / Function created. SQL> select clustering_factor('XH','T3','A') from dual; CLUSTERING_FACTOR('XH','T3','A') -------------------------------- 18
发表评论
-
ORA-14551: 无法在查询中执行 DML 操作
2013-11-30 13:45 1377最近在调试一个带DML操作的函数时,一直不成功,在PL/SQ ... -
Oracle Recursive Calls 说明
2013-04-09 23:11 1496一. Recursive Calls 说明 在执行计划 ... -
consistent gets db block gets
2013-04-09 19:58 1453consistent gets :consistent_ge ... -
SQL Server数据导入到Oracle中的方法
2012-07-17 17:09 1603在我们使用SQL Server数据库的过程中,有时需要将SQL ... -
更改ORACLE归档路径及归档模式
2012-07-16 18:23 1899在ORACLE10g和11g版本,ORAC ... -
disable/enable validate/novalidate 的区别
2012-01-08 11:41 1250启用约束: enable( validate) :启用约束,创 ... -
linux用dd测试磁盘速度
2012-01-07 21:58 1026首先要了解两个特殊的设备: /dev/null:回收站、 ... -
在数据分布严重不均的列上使用绑定变量容易错过更好的执行计划
2012-01-07 20:49 1054在数据分布严重不均的列上使用绑定变量容易错过更好的执行计划,原 ... -
Oracle hash join
2012-01-07 17:00 959hash join是oracle里面一个非常强悍的功能 ... -
恢复被rm意外删除数据文件
2012-01-05 12:30 1284一.模拟数据文件删除 [oracle ... -
oracle 块延迟清除(delayed block cleanout)
2012-01-04 22:47 1368为了保证事务的回退和满足多用户的 CR , orac ... -
Oracle数据库SCN号详解
2012-01-04 19:25 1550Oracle数据库SCN号详解: 系统检查点scn(v$da ... -
oracle常见问题与解答
2012-01-03 20:22 17171.对于sql,有几种方法查看执行计划,每种方法有什么区别,对 ... -
Oracle虚拟私有数据库(VPD)概述及简单举例
2011-12-23 12:35 1584Oracle虚拟私有数据库(VPD)概述及简单举例 1、Ora ... -
alter table move跟shrink space的区别
2011-12-17 15:02 1315都知道alter table move 或shrink spa ... -
How to dump Oracle Data Block?
2011-12-16 15:22 1005Often while doing instance tuni ... -
oracle索引的5种使用模式
2011-12-14 21:19 1085索引的使用对数据库的性能有巨大的影响。 共有五类不同的使用模式 ... -
HP Unix中的dba MLOCK
2011-12-14 19:14 2251最近在HP平台上遇到两次跟dba MLOCK权限相关的错误: ... -
NESTED LOOP、HASH JOIN、SORT MERGE JOIN
2011-12-13 23:18 1385表连接方式及使用场合 ... -
Oracle用户权限
2011-12-12 19:48 1533系统权限: 1、使用GRANT语句向用户赋予系统权限: ...
相关推荐
在Oracle中,可以使用CREATE INDEX语句创建索引,例如: ```sql CREATE INDEX idx_example ON table_name(column_name); ``` 这将在`table_name`表的`column_name`列上创建一个名为`idx_example`的索引。 另外,...
在Oracle数据库中,自定义聚集函数为用户提供了高度的灵活性,允许他们根据特定需求创建自己的数据聚合逻辑。本文将深入探讨Oracle自定义聚集函数的实现与应用,包括其四个主要组成部分:`ODCIAggregateInitialize`...
### Oracle B-Tree Index Internals #### 概述 Oracle B-Tree索引是Oracle数据库中最常见的索引类型之一,其高效性和灵活性使其成为许多应用中的首选。B-Tree索引内部结构及其工作原理一直是数据库管理员(DBA)和...
Oracle_Index 索引
oracle index orcle 索引优化
使用自定义聚集函数,实现聚集乘积: 测试select id,fun_multiply(t.value) "乘积" from (select 3 id , 4 value from dual union select 1 id , 1 value from dual union select 1 id , 0 value from dual ...
Oracle索引是数据库管理系统中用于加速数据检索的关键结构。...以上内容是根据“oracle index学习总结”文档的摘要,详细内容可参考提供的链接或文档:《oracle index学习总结.doc》和《oracle index学习总结.pdf》。
### Oracle Index Internals #### 知识点概览 本文档深入探讨了Oracle数据库中的索引内部机制。主要内容包括各种类型的Oracle索引结构及其实施方式、索引的行为、维护策略以及成本基础优化器如何确定索引的使用...
oracle 用户 全部 索引 all index sql
Oracle数据库中的索引是提升查询性能的关键工具,但随着时间推移和数据操作,索引可能会变得效率低下,需要重建以优化其性能。本文主要总结了重建Oracle索引的相关知识点。 一、重建索引的前提条件 当表上的数据...
本文将基于标题“Oracle_Index 索引3”及描述“Oracle_Index 索引”,深入探讨Oracle索引的基础知识、B树索引的构造原理及其对数据库性能的影响,旨在帮助读者更全面地理解Oracle索引的运作机制。 #### Oracle索引...
Oracle数据库使用分组函数来对数据进行聚集
当查询需要获取基于唯一键的单行数据时,Oracle会使用INDEX UNIQUE SCAN。这种模式确保了结果集中的每行数据都是唯一的,通常用于主键或唯一索引上。例如,当执行以下查询时: ```sql SELECT * FROM t1 WHERE ...
第十三讲:oracle index管理 第十四讲:oracle Partitioned Tables and Indexes管理 第十五讲:oracle view管理 第十六讲:oracle sequences管理 第十七讲:oracle 触发器管理 第十八讲:oracle 用户管理 第十九讲:...
Oracle Instant Client 11.2.0.1.0是轻量级Oracle客户端,用于连接访问Oracle 9i、10g、11g 11.2.0.1.0版本的Oracle数据库。 Oracle Instant Client11.2.0.1.0 安装程序包含OCI/ OCCI、JDBC-OCI SDK(软件开发工具...
"数据库创建索引SQL Oracle" 数据库索引是数据库性能优化的重要手段之一。创建索引可以提高查询速度,降低数据库的负载,提高数据的安全性。本文将详细介绍数据库创建索引的原则、分类、创建方法、管理和优化等方面...
Oracle 9i 数据库 Generic Documentation Master Index Release 2 是 Oracle 公司发布的一份重要的数据库文档总索引,该文档旨在为 Oracle 9i 数据库用户提供一个综合的文档索引,帮助他们更好地理解和使用 Oracle ...
Oracle 9i Client (Oracle 9i 客户端) 简化版 (不安装Oracle客户端,也可以使用PLSQL Developer 不用安装Oracle客户端也可以使用PLSQL Developer 绿色! 安全! 轻便! 可靠! 1、本软件可作为简单的Oracle9i客户端...
首先,Oracle.ManagedDataAccess是Oracle公司提供的一个纯.NET框架的客户端驱动,它允许开发者在不安装Oracle客户端的情况下,直接与Oracle数据库进行交互。这个库包含了所有必要的组件,使得C#程序可以方便地执行...
Oracle JDBC驱动包是Oracle数据库与Java应用程序之间进行通信的关键组件,它使得Java程序员能够通过编写Java代码来操作Oracle数据库。标题中的"ojdbc6"指的是Oracle JDBC驱动的一个特定版本,适用于Java SE 6环境。...