易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle 不使用索引,索引失效的几种情况

1,<>
2,单独的>,<,(有时会用到,有时不会)
3,like "%_" 百分号在前.
4,表没分析.
5,单独引用复合索引里非第一位置的索引列.
6,字符型字段为数字时在where条件里不添加引号.
7,对索引列进行运算.需要建立函数索引.
8,not in ,not exist.
9,当变量采用的是times变量,而表的字段采用的是date变量时.或相反情况。
10, 索引失效。
11,基于cost成本分析(oracle因为走全表成本会更小):查询小表,或者返回值大概在10%以上
12,有时都考虑到了 但就是不走索引,drop了从建试试在
13,B-tree索引 is null不会走,is not null会走,位图索引 is null,is not null  都会走
14,联合索引 is not null 只要在建立的索引列(不分先后)都会走,
in null时  必须要和建立索引第一列一起使用,当建立索引第一位置条件是is null 时,其他建立索引的列可以是is null(但必须在所有列都满足is null的时候),或者=一个值;
当建立索引的第一位置是=一个值时,其他索引列可以是任何情况(包括is null =一个值),以上两种情况索引都会走。其他情况不会走。
这些都是我在工作中遇到过的情况,数据库为oracle,会不断更新,希望对大家有帮助.


相关文档:

完全干掉Oracle死锁进程


完全干掉Oracle死锁进程
1.查哪个过程被锁:
查V$DB_OBJECT_CACHE视图:SELECT * from V$DB_OBJECT_CACHE WHERE OWNER='过程的所属用户' AND CLOCKS!='0';
2. 查是哪一个SID,通过SID可知道是哪个SESSION:
查V$ACCESS视图:SELECT * from V$ACCESS WHERE OWNER='过程的所属用户' AND NAME='刚才查到的过程名';
3. 查出SI ......

oracle rownum的用法


摘自《解析oracle的rownum》作者:chen_liang
对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。
(1) rownum 对于等于某值的查询条件
如果希望找到学生表中第一条学生的信息 ......

oracle 修改字段类型的方法

今天公司因为业务需要,修要修改某个字段数据类型有number(5),变为number(5,2)型
要是没有数据的话直接用以下语句即可
alter   table  tb_test  modify permile  number(5,2);
但是有数据的话 就不能用上面方法了,
alter table tb_test add permile_temp number(5,2)
update tb_test set  ......

ORACLE SQL常用优化方法

1       查询sql优化
1.1    选择最有效率的表名顺序(只在基于规则的优化器中有效ORACLE)
解析器按照从右到左的顺序处理from子句中的表名,因此from子句中写在最后的表(基础表driving table)将被最先处理。在from子句中包含多个表的情况下,你必须选择记录条数最少的表 ......

DELPHI 2007中使用ADO调用ORACLE有返回游标的存储过程


ADO 使用 ORACLE provider FOR  OLE DB 驱动时
调用存储过程需要返回游标时,在连接字符串中增加
PLSQLRSet=1 参数。
存储过程中的游标不需要付初始值
 
如:
  sp1: TADOStoredProc;
 
 
 sp1.Close;
 sp1.ProcedureName := 'pkg_ScanList_By_JobNo.sp_GetScanList';& ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号