![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
sql优化
suyishuai
这个作者很懒,什么都没留下…
展开
-
函数索引的原理及好处
函数索引:就是把列值通过函数计算的结果放入索引。 好处一:可以把一些数值排除在索引外面,即部分行建立索引 好处二:减少递归调用的次数。例如function(column1) 如果表中有1000行,即便column1列上建有索引,索引在此时也不被使用,function会执行1000次。通过三次比较说明 建函数索引性能最高原创 2013-12-30 10:29:14 · 1371 阅读 · 0 评论 -
DBA任务---确保统计信息准确性
最近忙得不可开交,项目进入了cut over阶段,压力之大,前所未有。我的任务就是,负责优化long running的SQL,让其可以在3小时以内完成。昨天就出现一个Long running 的SQL,它跑了16小时,经过2小时的奋斗,终于把它优化到了2小时10分钟。 虽然那个Long running SQL 与统计信息无关,但是我还是提出要确保统计信息的准确性。作为DBA,我转载 2014-09-24 16:32:11 · 729 阅读 · 0 评论 -
ORACLE 中dbms_stats的使用
ORACLE 中dbms_stats的使用dbms_stats能良好地估计统计数据(尤其是针对较大的分区表),并能获得更好的统计结果,最终制定出速度更快的SQL执行计划。exec dbms_stats.gather_schema_stats(ownname => 'SCOTT',options => 'GATHER AUTO',estim转载 2014-01-06 09:49:20 · 706 阅读 · 0 评论 -
Oracle group by高级用法对比效果(ROLLUP、GROUPING SETS、CUBE)
Oracle group by高级用法对比效果(ROLLUP、GROUPING SETS、CUBE),今天主要跟大家演示一下,在同一组数据的情况下,每个SQL的执行结果。 一:普通的group by 二:加上ROLLUP 三:加上CUBE 四:加上GROUPING S原创 2014-03-25 10:36:39 · 8448 阅读 · 0 评论 -
Oracle group by高级用法之rollup
最近一直给项目组的开发人员进行SQL优化,发现他们对一些group by的高级都不是太会用。今天我就做几个测试,来演示rollup的用途。 Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。如果是ROLLUP(A, B, C)的话,首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,原创 2014-03-19 16:22:38 · 5657 阅读 · 0 评论 -
oracle IN与EXISTS子查询的关系
在我任职的公司里面,有很多的规范啊手册一类的东西。我们公司oracle语法规范里面有2条我一直就很怀疑(1.子查询结果集小,用IN 2.外表小,子查询表大,用EXISTS),我前几天看了一些文章说每个版本的oracle的CBO有一些的不同,我想试验下,刚才的2条规则。由于我手上只有10G和11G的环境,我只能给大家演示这2个版本的。 通过上面的例子,我发现一般情原创 2014-01-16 17:06:39 · 2516 阅读 · 0 评论 -
oracle 索引的监控-是否使用
我们可以通过alter index xxx monitoring usage的命令,对具体的索引进行监控,通过查询v$object_usage视图的USED字段的取值是YES还是NO,就可以知道该索引是否被使用过原创 2013-12-27 11:39:09 · 600 阅读 · 0 评论 -
oracle 联合索引的疑问-与单列查询的关系
下面的试验里面,创建一个2列的联合索引,我们进行各种组合验证联合索引与单列查询的关系原创 2013-12-27 11:16:42 · 2472 阅读 · 0 评论 -
索引特性之存列值优化sum/avg
刚才和大家讨论了count(*)的时候索引影响,现在讨论下sum/avg这个2个函数。环境如下: 我们分别在10G和11G运行 同一个SQL 在10G 里面加上not null会怎么样呢?原创 2013-12-27 09:45:56 · 991 阅读 · 0 评论 -
UNION 是需要排序的
今天做的测试是UNION 是需要排序的(无论是全表扫描还是索引扫描)原创 2013-12-27 09:38:54 · 721 阅读 · 0 评论 -
索引没用上-date的通病
在oracle数据库开发应用中,查询时间date类型的sql比较多,我相信大家也见过“trunc(created)>=TO_DATE('2013-12-14', 'YYYY-MM-DD')”这类的写法,这样写真的好吗?下面我们做过实验 大家看到了吧?好不好的我就不说了,你们都明白的吧!原创 2013-12-27 09:22:37 · 2442 阅读 · 2 评论 -
索引没用上-drop表恢复后,索引改名了
drop表,然后从回收站中取回表后,除了索引会丢,约束一样也会丢失,这是我们要验证的问题 以下3种情况不支持 flashback table : (1)系统表空间上的对象不支持闪回 (2)drop table purge; (3)recyclebin=off时 一:先确认是否支持flashback 和 是否开启 recyclebin原创 2013-12-27 09:15:17 · 1740 阅读 · 0 评论 -
统计信息备份
下面例子中,都是使用SEC用户作为测试用户例子中函数只使用常用参数,部分参数未使用,可以查看oracle 在线帮助手册位置:步骤一:创建储统备份计信息的表SQL> conn sec/sec Connected. SQL> SQL>exec dbm原创 2015-01-26 13:42:54 · 651 阅读 · 0 评论