建立索引express
1.建立索引語法oracle
CREATE [UNIQUE] | [BITMAP] INDEX index_name --unique表示惟一索引 ON table_name([column1 [ASC|DESC],column2 --bitmap,建立位圖索引 [ASC|DESC],…] | [express]) [TABLESPACE tablespace_name] [PCTFREE n1] --指定索引在數據塊中空閒空間 [STORAGE (INITIAL n2)] [NOLOGGING] --表示建立和重建索引時容許對錶作DML操做,默認狀況下不該該使用 [NOLINE] [NOSORT]; --表示建立索引時不進行排序,默認不適用,若是數據已是按照該索引順序排列的可使用
1建立位圖索引函數
create bitmap index index_sno on student(sno);優化
2建立普通索引spa
create index index_id on 表名(字段);code
1. 當常常要訪問一些函數或者表達式時,能夠將其存儲在索引中,這樣下次訪問時,該值已經計算出來了,能夠加快查詢速度blog
2. 函數索引既可使用B數索引,也可使用位圖索引;當函數結果不肯定時採用B樹索引,結果是固定的某幾個值時使用位圖索引排序
3. 函數索引中能夠水泥用len、trim、substr、upper(每行返回獨立結果),不能使用如sum、max、min、avg等索引
3建立函數索引字符串
create index fbi on student (upper(name));
1. 若是有兩個或者以上的索引,其中有一個惟一性索引,而其餘是非惟一,這種狀況下oracle將使用惟一性索引而徹底忽略非惟一性索引
2. 至少要包含組合索引的第一列(即若是索引創建在多個列上,只有它的第一個列被where子句引用時,優化器纔會使用該索引)
3. 小表不要簡歷索引
4. 對於基數大的列適合創建B樹索引,對於基數小的列適合簡歷位圖索引
5. 列中有不少空值,但常常查詢該列上非空記錄時應該創建索引
6. 常常進行鏈接查詢的列應該建立索引
7. 使用create index時要將最常查詢的列放在最前面
8. LONG(可變長字符串數據,最長2G)和LONG RAW(可變長二進制數據,最長2G)列不能建立索引
9.限制表中索引的數量(建立索引耗費時間,而且隨數據量的增大而增大;索引會佔用物理空間;當對錶中的數據進行增長、刪除和修改的時候,索引也要動態的維護,下降了數據的維護速度)
建立視圖
語法: create [ or replace ] [ force ] view [schema.]view_name
[ (column1,column2,...) ]
as
select ...
[ with check option ] [ constraint constraint_name ]
[ with read only ];
1.虛擬視圖
CREATE OR REPLACE FORCE VIEW "SY_GWCS"."RCV_TB_VIEW" ("DID", "SRID", "ISREAD", "ISQIANSHOU", "TS", "ISDEL", "UNITID", "TITLE", "FAWENDANWEI", "FAWENRIQI", "WENHAO") AS
select a.did,a.srid ,a.isread,a.isqianshou,a.ts,a.isdel,a.unitid,b.title,b.fawendanwei,b.fawenriqi,b.wenhao from RCV_TB a
2.物理視圖
CREATE MATERIALIZED VIEW
(好比天天晚上10:00定時刷新一次):create materialized view mv_name refresh force on demand start with sysdate next to_date( concat( to_char( sysdate+1,'dd-mm-yyyy'),' 22:00:00'),'dd-mm-yyyy hh24:mi:ss')