ORACLE 数据库对象
ORACLE 数据库对象
——索引
q 索引是与表相关的一个可选结构
q 用以提高 SQL 语句执行的性能
q 减少磁盘I/O
q 使用 CREATE INDEX 语句创建索引
q 在逻辑上和物理上都独立于表的数据
q Oracle 自动维护索引
索引的目标:提高查询性能
索引对增删改查的影响
SQL语句
对性能的影响
SELECT
查询性能提高
UPDATE
更新删除时需要先查询,从此角度性能提高
更新删除时引起索引修改,从此角度性能下降
DELETE
INSERT
增加引起索引改变,索引对其负面影响更大,性能下降
什么时候建立索引?
1. 需要频繁查询的数据
2. 数据量较多
3. 该列不会频繁 update/insert/delete
4. 在 where/order by/group by 字句中出现的列
5. 在高基数列上建立索引(重复数据不多)
empno
ename
sal
1
HUANGPei
1000
1
HUANGPei
1000
3
HUANGPei
1000
4
HUANGPei
1000
empno
ename
sal
1
HUANGPei
1000
1
HUANGPei
1000
1
HUANGPei
1000
1
HUANGPei
1000
基数:3/4
基数:1/4
索引的类型
唯一索引
位图索引
组合索引
基于函数的索引
反向键索引
创建标准索引
CREATE INDEX item_index ON itemfile (itemcode)
TABLESPACE index_tbs;
重建索引
ALTER INDEX item_index REBUILD;
删除索引
DROP INDEX item_index;
唯一索引
q 唯一索引确保在定义索引的列中没有重复值
q Oracle 自动在表的主键列上创建唯一索引
q 使用CREATE UNIQUE INDEX语句创建唯一索引
CREATE UNIQUE INDEX item_index
ON itemfile (itemcode);
组合索引
q  
相关文档:
也许对SQL Server来说,取前N位的数据是很简单的事情,一条TOP语句就搞定了.
在Oracle中我们往往会感觉到头疼,平日里也常会用到,主要是使用partition by.
语法如下:
select emp_card_no,work_date,read_card_date,count(rownum) as cnt
from hra_read_car ......
Oracle
函
数之substr
关键字: substr
substr函数有三个参数,允许你将目标字符串的一部份输出,
第一个参数为目标字符串,
第二个字符串是将要输出的子串的起点,
第三个参数是将要输出的子串的长度。
例子1:
substr('ABCDEFG', 2, 3) ......
select custid,carid,Cunote,INVNO,BUYPLAN
from ( select custid,carid,Cunote,INVNO,BUYPLAN,
row_number() over(partition by custid,carid order by Feedbackid desc) rn
from pvE3S.T_VCTM_CUSTOMER_FEEDBACK) t1 where rn=1
按Feedbackid 排序,rn是前N行 ......
Hey all,
Since there seems to be a fair bit of disinformation, and utter nonsense,
floating around since my talk at the Black Hat Federal security conference
the other day, I have decided to publish the following papers.
http://www.databasesecurity.com/HackingAurora.pdf
http://www.databasesec ......