oracle索引
suyishuai
这个作者很懒,什么都没留下…
展开
-
函数索引的原理及好处
函数索引:就是把列值通过函数计算的结果放入索引。 好处一:可以把一些数值排除在索引外面,即部分行建立索引 好处二:减少递归调用的次数。例如function(column1) 如果表中有1000行,即便column1列上建有索引,索引在此时也不被使用,function会执行1000次。通过三次比较说明 建函数索引性能最高原创 2013-12-30 10:29:14 · 1385 阅读 · 0 评论 -
oracle 索引的监控-是否使用
我们可以通过alter index xxx monitoring usage的命令,对具体的索引进行监控,通过查询v$object_usage视图的USED字段的取值是YES还是NO,就可以知道该索引是否被使用过原创 2013-12-27 11:39:09 · 608 阅读 · 0 评论 -
oracle ALTER TABLE MOVE 索引失效
多人想用ALTER TABLE MOVE的方式来降低高水平,结果经常忽略了这个操作会导致索引失效。 下面做个试验原创 2013-12-27 10:32:53 · 1626 阅读 · 0 评论 -
索引特性之存列值优化sum/avg
刚才和大家讨论了count(*)的时候索引影响,现在讨论下sum/avg这个2个函数。环境如下: 我们分别在10G和11G运行 同一个SQL 在10G 里面加上not null会怎么样呢?原创 2013-12-27 09:45:56 · 999 阅读 · 0 评论 -
UNION 是需要排序的
今天做的测试是UNION 是需要排序的(无论是全表扫描还是索引扫描)原创 2013-12-27 09:38:54 · 733 阅读 · 0 评论 -
引查询常用相关语句-1
1.当前用户下,哪些表的索引个数字超过5个的 select table_name, count(*) cnt from user_indexes group by table_name having count(*) >= 5 order by cnt desc ;2.外键未建索引的 select table_name,原创 2013-12-26 17:32:55 · 599 阅读 · 0 评论 -
oracle count(*)与count(列)的困扰
从我做开发dba开始,count(*)和count(列)谁快就一直的困扰着我,通过这次学习,我总算是明白了。下面我把我的实验过程写出来。实验环境: oracle11gR2, 实验数据:自备 第一种情况:没有索引的情况下 运行count(*)和count(列)原创 2013-12-27 08:53:48 · 2715 阅读 · 0 评论 -
oracle 更新分区表关键字 ORA-14402
不知道大家在更新分区表关键字的时候有没有遇到过ORA-14402,今天我就给大家演示一下。 首先创建分区表 create table part_tab_rowid (id int,col2 int,col3 int,contents varchar2(4000)) partition by range (id) ( part原创 2013-12-27 09:04:31 · 2801 阅读 · 0 评论 -
分区表统计信息用法
我们在收集普通表的时候,经常使用Analyze来收集一下表的统计信息,但是在分区表这样做是有问题的,所以我们要用dbms_stats.gather_table_stats来收集分区信息,这样做的好处1. 传统的analyze的方式对收集分区表统计信息不准确。2. 可以只收集某分区的统计信息 这是统计前的信息,在这个分区表里面,2013和2014年原创 2013-12-27 09:10:44 · 4344 阅读 · 0 评论 -
索引没用上-date的通病
在oracle数据库开发应用中,查询时间date类型的sql比较多,我相信大家也见过“trunc(created)>=TO_DATE('2013-12-14', 'YYYY-MM-DD')”这类的写法,这样写真的好吗?下面我们做过实验 大家看到了吧?好不好的我就不说了,你们都明白的吧!原创 2013-12-27 09:22:37 · 2487 阅读 · 2 评论 -
索引查询常用相关语句-2
1.当前用户下,哪些索引的聚合因子特别大 select a.table_name, a.index_name, a.blevel, a.leaf_blocks, b.num_rows, b.blocks, a.clustering_factor, trunc(a.clustering_factor / b.num_rows,2) c原创 2013-12-26 17:36:20 · 1038 阅读 · 0 评论 -
oracle-决定回表性能的因素
oracle里面根据rowid再查询数据的过程叫做回表,有时候回表是不能避免的,那么回表的性能是什么决定的呢?下面我们来做一个实验。 1,首先创建一张表,脚本如下 这张表只有2列,X列是有序的数字,Y是随机数字转换的字符串,在表上面建立X的索引。 2.根据第一步创建的表,创建第二张表,这个表是建立Y的索引原创 2013-12-25 22:17:06 · 759 阅读 · 0 评论 -
哈希连接(Hash Join(HJ))-1
(散列)哈希连接(Hash Join (HJ)) 假如有A、B两张表进行哈希连接,那么ORACLE会首先将B表在内存中建立一棵以散列表形式存在的查询二叉树C,然后开始读取A表的第一条记录,从C中去找匹配的记录,如果有,则推到结果集中。再提取A中的第二条记录,如果有,则推到结果集中,以此类推,直到A中没有记录,返回结果集。 HasH Join:1个班的同学选舞伴,原创 2014-01-07 10:08:31 · 1661 阅读 · 0 评论 -
索引没用上-drop表恢复后,索引改名了
drop表,然后从回收站中取回表后,除了索引会丢,约束一样也会丢失,这是我们要验证的问题 以下3种情况不支持 flashback table : (1)系统表空间上的对象不支持闪回 (2)drop table purge; (3)recyclebin=off时 一:先确认是否支持flashback 和 是否开启 recyclebin原创 2013-12-27 09:15:17 · 1747 阅读 · 0 评论 -
常用索引类型查询语句
--当前系统有哪些函数索引, 建在哪个表的哪个列上,状态如何。 select t1.table_name,t1.index_name, t2.COLUMN_NAME,t2.COLUMN_POSITION, t1.status,t1.funcidx_status from user_indexes t1, user_ind_columns t2where t1.ind原创 2013-12-30 15:15:09 · 980 阅读 · 0 评论 -
oracle 联合索引的疑问-与单列查询的关系
下面的试验里面,创建一个2列的联合索引,我们进行各种组合验证联合索引与单列查询的关系原创 2013-12-27 11:16:42 · 2474 阅读 · 0 评论