在AnySQL.net中搜索标签(Tags) 'Cluster' 的结果:

Organization Index之后是Organization Cluster

    最近常研究和分析Hash Cluster表, 发现要选建一个Cluster, 再在上面建表, 过程麻烦, 明明只有一个表, 却要分成两步, 或三步走. 在电视广告上什么都说一片能顶三片或五片的时代下, Oracle也应当进步一下. 我总是只在一个Cluster上建一个表, 称为Single Table Cluster吧.     IOT是很好, 可是他的主要缺点是必需要有主键, 另外由于没有物理的ROWID, 因此在建第二个索引时, 从效率和维护代价上来看有些高. 而Index Cluster则不需要一定是主键, Hash Cluster则根本就不需要Index, 都是很好的东西.     其实出一个Organization Cluster(COT)不是很好吗? Organization Cluster (column, ...) SIZE ... Organization Cluster...

对Hash Cluster表的一些进一步测试之二

    今天早上用真实的数据进行了第二次测试, 一是验证我这种定义SIZE和HASHKEYS参数的方法有没有问题, 另外一个是难证Oracle自带的Hash函数是否高效. 为此我选取了1000万条真实的记录, 表的大小大约是1.5个G, 我将Cluster的HASHKEYS * SIZE设成2G左右, 语句如下: CREATE CLUSTER C_USER_HOST_ID_LOOKUP (USER_ID NUMBER(38,0))     SIZE 8192 SINGLE TABLE HASHKEYS 262144;     用sqlldr装载这些数据却用了1个小时, 这是因为你不能用Direct方式, 而且每条记录是随机存放的, 而不是连续存放的, 所以比较慢. 装载完成后, 用如下脚本进行验证. 其中的SELECT语句可是要执行大约1000万次的. DECLARE    TEMP VARCHAR2(64); BEGIN    FOR REC...

对Hash Cluster表的一些进一步测试之一

    在前面的例子中, 我们都只是做了一些小批量数据, 如果我的Hash Cluster表有几个GB或几十个GB的大小时, 又怎么样呢? 下面进行的是我在笔记本上的测试, 用于测试的表的大小是100MB, 进行测试时的数据是50万条. 测试的目的是为了要证明Hash Cluster是否可能用于大数据量的表中, 即验证Oracle内建的Hash函数是否是高效的. 创建Hash Cluster的句语是: CREATE CLUSTER C_T_OBJECTS (OBJECT_ID NUMBER(38,0)) SIZE 8192 SINGLE TABLE HASHKEYS 12800;         在100MB的DB_CACHE_SIZE下进行测试: 21:48:10 SQL> SELECT HASH_VALUE, BUFFER_GETS, EXECUTIONS 21:48:54   2  FROM V$SQL WHERE HASH_VALUE=3523526785;...

如何创建Single Hash Cluster的表?

    Hash Cluster的表可以在没有索引的情况下, 获得对表的极快访问, 这种访问的逻辑读比维一性索引还有效. 在这儿有一张表T_OBJECTS, 其中的OBJECT_ID是主键, 大量的SQL语句都是根据OBJECT_ID去访问其他字段, 通过索引的情况下每次执行的逻辑读已经只有3了(Index Root->Leaf->Table), 但是就是这样一句简单的SQL的逻辑读占据了大半. 因此考虑到使用Single Hash Cluster表来进行调优. 应当如何来创建这个Cluster呢? 决定Cluster性能的主要有两个因素: SIZE和HASHKEYS.     下面是我的思路, 首先分析一下现在的表, 获得比较准确的块数. SQL> SELECT BLOCKS FROM USER_TABLES WHERE TABLE_NAME='T_OBJECTS';     BLOCKS ----------        118     因为在这个情况下, 数据分布均匀, 因此我只要将HASHKEYS定义为块数就已经比较好了, 实际上为了更安全,...

在Hash表上建普通的B*Tree索引

    最近几个人都写Blog来关注Single Table Cluster, 我也来重复一下, 要说明的是可以在Hash表上加普通的索引, 以支持按范围的访问, 演示的角本如下: CREATE CLUSTER HASH_C_DEMO (OBJECT_ID NUMBER) SIZE 50 SINGLE TABLE HASHKEYS 1000; CREATE TABLE T_C_DEMO (OBJECT_ID NUMBER, OBJECT_NAME VARCHAR2(30)) CLUSTER HASH_C_DEMO (OBJECT_ID); CREATE INDEX IDX_T_C_DEMO ON T_C_DEMO (OBJECT_ID); INSERT INTO T_C_DEMO SELECT...

为什么聚簇表的空间扩得这么厉害?

    问题从ITPub.net而来:     我两张表, 分别各600m数据, 有相同得PK,每张表表只有两个字段, 然后建立聚簇, 这个居然有4G多了? 晕!     当然晕的肯定是你了, 不是Oracle, 这个问题, 我的第一反应是你没有指定SIZE参数, 先来看一段说明吧.     SIZE     specifies the amount of space in bytes to store all rows with the same cluster key value...

根据标记(Tags)来查找:

分类 | Categories

本站基于MT-3.36免费版, 和Fenng设计的模板.
(©)版权所有, 2004 - 2008, www.AnySQL.net, 保留所有权利.
MSN: loufangxin(a)msn.com, Mail: anysql(at)126.com/support(at)iamdba.com, Skype ID:anysql