一是指标的引入
1。索引相当于一个目录。
2,索引是用一组排序索引键代替默认的全表扫描检索方法,从而提高检索效率。
3,索引的建立要适度,这会影响增删效率,而较少会影响查询效率。应该在值分散的列上创建索引,以避免在同一个表上创建太多索引。
4。索引的使用对用户是透明的,并决定系统何时使用索引。
5,Oracle支持多种类型的索引。它可以根据列数、索引值和索引数据对索引进行分类,以满足不同表和查询条件的需求。
A.单栏索引和综合索引
b树索引(创建索引时的默认类型)
B树索引中的所有叶节点具有相同的深度,因此查询速度与查询条件基本一致,可以适用于各种查询条件,包括精确查询、模糊查询和比较查询。
惟一的唯一索引值是惟一的,但允许null,默认情况下主键具有唯一索引,但列不能为空。
-非唯一性:非唯一索引,其索引值可以重复,允许为null。
-反向键:反向关键字索引。通过在创建索引时指定反向关键字,可以创建反向关键字索引,并将索引的每个数据列中的数据存储在相反的位置。
但仍然保留原始数据列的序列。
位图索引(用于较少的列值,如性别政治展望,而不是默认的B树索引)
C.功能指数
当您需要经常访问一些函数或表达式时,可以将它们存储在索引中。下次访问时,由于计算了值,可以大大增加WHERE子句中的这些函数。
表达式查询操作的速度;
函数索引可以使用B树索引或位图索引。
两。指标管理原则
使用索引应遵循以下基本原则。
1。小表不需要索引。
2。对于大表,如果经常查询记录的数量少于表中记录总数的15%,则可以创建索引。这个比率不是绝对的,它与全表扫描速度成反比。
三.不重复列值的列可以索引。
4。对于一个基数较大的列,它适合建立B树索引,而一个小基数的列适合建立位图索引。
5。应该为列中有若干空值的列建立索引,但通常查询非空值记录的所有列。
的6.long和LONG RAW列不能创建一个索引。
7。应该在经常连接到查询的列上创建索引。
8。在使用创建索引语句创建查询时,最常用的查询列放在其他列的前面。
9。维护索引需要开销,尤其是在表中插入和删除操作时,表中的索引数量有限。
10。索引是在数据插入表中创建的。如果在加载数据之前创建索引,Oracle必须在插入每行时更改每个索引。
三,长型(存储2G)主要用于不需要字符串搜索的长字符串数据。如果你要搜索的字符,你需要使用VARCHAR2类型存储这么久。请用pstat1.setcharacterstream()方法,和数据连接附件P26。
四。创建如下的索引语法
创建索引语句的语法如下所示:
{ } { }创建独特的位图索引index_name |
在table_name({ column1 { ASC | DESC },column2
{ ASC | DESC },{ })表示| }…
{表tablespace_name }
{ PCTFREE N1 }
{存储(初始n2)}
{ nologging }
{在线}
{ NOSORT };
五,
1。在all_indexs表格视图的索引信息
2。看看索引信息和参考列all_ind_columns
三.看功能指标信息all_ind_expressions
4,Oracle更智能,有时甚至在索引创建时也不会使用它,例如,如果数据量相对较小,则不可能索引。
5。当进行全表扫描时,没有索引的效率会更好。
6,查询可能使用缓存,所以如果您发现执行速度更快,并不一定意味着您的SQL更好,它可以用于缓存。
7。以PLSQL解释计划功能可以比较计划的消费,然后写一个更好的SQL