知识大全 用排序哈希簇来提升ORACLE查询速度
Posted 函数
篇首语:沧海横流,方显英雄本色;青山矗立,不堕凌云之志。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用排序哈希簇来提升ORACLE查询速度相关的知识,希望对你有一定的参考价值。
用排序哈希簇来提升ORACLE查询速度 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
当数据存储在一个普通表中的时候 这些记录将以插入到数据库时的顺序物理地保存到分配的块中 例如 如果有一个用于存储员工信息的表 那么员工姓名将会按照插入到表的顺序存储在表中 如果员工记录非常多的话 那么数据表的响应速度就会逐渐变慢 你可以通过选择值相对等分布的一列(如员工的部门编号)并建立一个簇表来提高查询员工的速度 在簇表中 如果员工属于同一个部门 那么它们的记录将物理地存储在同一系列的块中 这样就可以提高查找员工信息的速度 这是因为在检索某个特定部门的员工时 需要读取数据库块的数量减少了 而在非簇表中查找员工 就可能需要对每个数据库块进行访问 当表中存在大量键值的时候 你就会开始发现由于存在许多簇块而导致的性能问题 避免这个问题的一个方法就是使用一个哈希函数来约束簇块的数量 哈希函数将会给定一个数值用来限定簇块数量的预计范围 但它得到的值是相对等分布的 例如你可以创建一个哈希函数 只比较部门编号的最后两位 哈希函数中存在的一个问题就是函数值会打乱记录原本的顺序 你可以通过 ORDER BY来解决这个问题 但是 在很多情况下 记录数量是非常庞大的 在Oracle g 中 你可以将一个数据定义为 natural order 那么就可以不用经过排序而以你所希望的顺序来检索哈希簇的数据 从而解决了上面的提出问题 例如 假设你有一个信用卡业务的数据库 你决定以信用卡号作为簇主键将有利于数据的存储分布 但是 由于存在大量的信用卡号 所以可以使用一个哈希函数来约束簇块的数量 而且你希望在你的大部分报表中数据是按照时间顺序排列的 那么在进行每个查询操作时使用排序哈希簇 而不要使用ORDER BY 下面给出了相关语句 create cluster credit_cluster ( card_no varchar ( ) transdate date sort ) haseys hash is ora_hash(card_no) size ; create table credit_orders ( card_no varchar ( ) transdate date amount number ) cluster credit_cluster(card_no transdate); alter session set nls_date_format = YYYYMMDDHH MISS ; insert into credit_orders (card_no transdate amount) values ( ); insert into credit_orders (card_no transdate amount) values ( ); insert into credit_orders (card_no transdate amount) values ( ); insert into credit_orders (card_no transdate amount) values ( ); 可以看到我在这里使用了一个新函数ORA_HASH 来为信用卡建立一个哈希数值 现在 你可以非常简单地对某个信用卡数据进行查询 并返回自动排序后的结果 cha138/Article/program/Oracle/201311/18457相关参考
Oracle基本查询过滤排序示例解析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!以下是对Orac
Oracle分页查询中排序与效率问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 原始未分页查
解决Oracle分页查询中排序与效率问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 原始未分
Oracle高级查询实例,提升效率 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使用Oracl
Oracle临时表优化查询速度 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 前言 目前所
如何提高ORACLE数据库的查询统计速度 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 大型数据
在Oracle查询中如果在没有排序但又想让某列中特定值的信息排到前面的时候使用oracle的decode(字段字段值数字)cha138/Article/program/Oracle/20
标准的rownum分页查询使用方法 select* from(selectc*rownumrnfromcontentc) &n
ORACLE常用数据字典的查询视图 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 用户 查看用
Oracle用户数据字典以及查询表字段 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 查看当前用