Oracle index 的运用
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表空间操作详解
1
2
3作者: 来源: 更新日期:2006-01-04
5
6
7建立表空间
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
假设数据库的拥有者为oracle,数据库的用户为scott,其口令为trigger,
Oracle数据库的参数$ORACLE_HOME为/usr/oracle,$ORACLE_SID为oracle1,则实现步骤如下:
1、建立实现备份的shell
在/usr/oracle中用vi命令建立文件backup.sh,其内容为:
ORACLE_HOME=/usr/oracle; <br>export ORACLE_HOME;
ORACLE_SID= ......
第一步:下载安装Oracle 10g Release 2 客户端软件,下载连接是:
http://download.oracle.com/otn/nt/oracle10g/10201/10201_database_win32.zip
下载后安装
第二步:下载安装Oracle ODAC,下载连接是:
http://download.oracle.com/otn/other/ole-oo4o/ODAC1020221.exe
第三步: 重启MS SQ ......