ORACLE 表如何count最快?
来源:互联网 发布:11月份宏观经济数据 编辑:程序博客网 时间:2024/05/17 06:21
前言
ORACLE count计数最快的方法是使用有BITMAP索引的列,但测试时,ORACLE会自动选择有位图索引的列,count(1)和count(*)均会自动选择有BITMAP索引的列。如果HINT提示指定的索引列为非BITMAP索引,依然可能会被ORACLE忽略!
T_GZPJL2 表总记录数698868条, ZYFL字段只有3个值,而索引为普通索引,被ORACLE忽略。
问答
1、在Oracle中如何获取表的记录数,最快的是count(*),count(1)还是count(【某个字段】)呢?
答案是:count()有索引的字段比count没有索引的字段块。
2、为什么测试的时候count(*)和count(1)测试效果一样?
答案是:ORACLE 10g以上的版本基于成本的优化器自己做出了选择,总是选择有索引的列进行计数。
3、不管是什么索引,count()速度都一样快吗?
答案是:否!使用位图索引的计数最快,使用B+数索引(普通索引)的次之,性能相差可达1个数量级以上。
4、count()时使用提示(hint),ORACLE一定会使用给定的索引?
答案是:否!如果表已建位图索引,即使你指定了其他非位图索引,ORACLE仍然会倔强地使用BITMAP索引。
结论
ORACLE中表count()时,使用有位图索引的字段(ORACLE 10g 以上版本优化器会自动选择)最快,其他索引次之,但位图索引的副作用是在巨量数据情况下,可能会影响插入或更新性能。
0 0
- ORACLE 表如何count最快?
- Android如何调试最快?
- Android如何调试最快?
- Android如何调试最快?
- Oracle count(1) count(*) count(col)
- oracle如何最快的删除大数据量表中的多个字段
- 如何写出最快的循环
- 如何最快拥有一台新电脑
- 17.leetcode题目204: Count Primes(不是最快的!)
- Oracle中count()函数
- oracle count()用法
- oracle touch count测试
- Oracle中count函数
- oracle count函数
- oracle select count(*) 优化
- ORACLE--COUNT()函数使用
- oracle中count用法
- 删除表最快
- MathType的三个使用技巧
- 高德地图定位相关API
- tcltk实时读写文件【创建log-debug】
- iOS开发:使用苹果自带框架实现二维码和条形码扫描
- Java 集合框架
- ORACLE 表如何count最快?
- 你有什么道理后悔没有早点知道?
- hadoop实践(一)环境准备
- Walker 之侧滑菜单的实现
- (Builder)建造者模式的Java实现
- VC获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法
- 对AlertDialog.Builder进行封装
- 自定义View学习笔记(4)->凹凸的View
- SAP Portal实施分享_自定义LoginModule模块