Oracle index 的运用
来源:互联网 发布:python分布式爬虫框架 编辑:程序博客网 时间:2024/05/21 07:13
1 查看某张表的index的详细信息。(column_position代表选择顺序)
select table_name, index_name, column_name, column_position
from user_ind_columns
where table_name = 'T_BASE_DATA_DICTIONARY'
order by table_name, index_name, column_position;
2 在创建表时对列指定NOT NULL后会禁用NULL值,而且可以避免与使用NULL值相关的性能问题。(如:index :xxx is not null )
3将Oracle的ROWID硬编码成特定代码时,一定要小心谨慎。因为不同版本的ROWID结构会有所不同,而且在将来的版本里可能还会有所改变。我建议不要对ROWID进行硬编码
4通过改变所比较的列上的值,而不用改变列本身,就可以启用索引用。这样可避免全表扫描。
5对于有较低基数的列需要使用位图索引。性别列就是这样一个例子,它有两个可能值:男或女(基数仅为2)。位图对于低基数(少量的不同值)列来说非常快,这是因为索引的尺寸相对于B树索引来说小了很多。因为这些索引是低基数的B树索引,所以非常小因此您可以经常检索表中超过半数的行,并且仍使用位图索引.
在一个查询中合并多个位图索引后,可以使性能显著提高。位图索引使用固定长度的数据类型要比可变长度的数据类型好。较大尺寸的块也会提高对位图索引的存储和读取性能。
建议不要在一些联机事务处理(OLTP)应用程序中使用位图索引。B树索引的索引值中包含ROWID,这样Oracle就可以在行级别上锁定索引。位图索引存储为压缩的索引值,其中包含了一定范围的ROWID,因此Oracle必须针对一个给定值锁定所有范围内的ROWID。这种锁定类型可能在某些DML语句中造成死锁。SELECT语句不会受到这种锁定问题的影响。
位图索引有很多限制,如下所示:
● 基于规则的优化器不会考虑位图索引。
● 当执行ALTER TABLE语句并修改包含有位图索引的列时,会使位图索引失效。
● 位图索引不包含任何列数据,并且不能用于任何类型的完整性检查。
● 位图索引不能被声明为唯一索引。
● 位图索引的最大长度为30。
- Oracle index 的运用
- html标签的运用index.html
- Oracle的Index
- Oracle的Index
- Oracle 的 Index
- Oracle Index 的三個問題
- Oracle的Index,以及组合Index
- Oracle索引的运用
- Oracle Index 的三个问题
- Oracle Index 的三个问题
- Oracle Index 的三个问题
- Oracle Index 的实战分析
- Oracle Index 的三个问题
- Oracle Index 的三个问题
- ORACLE中index的rebuild
- ORACLE中index的rebuild
- ORACLE中index的rebuild
- Oracle索引(Index)的使用
- C++的成员函数指针简要
- RMI学习笔记
- WF从入门到精通(第十九章):把工作流发布为Web服务
- 转贴:数据结构:二分查找
- 学习Linux命令的体会——读《Unix教程》有感
- Oracle index 的运用
- Div全屏幕自动伸缩非常适合做后台管理 (不兼容IE6)
- DLL学习摘录2
- 转贴:数据结构:Hash查找
- VC实现系统热键激活后台服务程序
- zz--水煮TCPMP
- 初来乍到。多多指教
- 如何管理“吃力不讨好”的软件定制项目?
- Junit和javadoc的完美结合