1 序列
- 可供多個用戶用來產生唯一數值的數據庫對象
- 自動提供惟一的數值
- 共享對象
- 主要用於提供主鍵
- 將序列值裝入內存可以提高訪問效率
1.1 創建序列
SQL> create sequence myseq;
SQL> create table testseq(tid number,tname varchar2(20));
SQL> select myseq.nextval from dual;
SQL> select myseq.currval from dual;
SQL> insert into testseq values(myseq.nextval,'aa');
SQL> insert into testseq values(myseq.nextval,'aa');
SQL> insert into testseq values(myseq.nextval,'aa');
SQL> slect * from testseq;
SQL> commit;
SQL> insert into testseq values(myseq.nextval,'aa');
SQL>rollback
2 索引
- 一種獨立於表的模式對象,可以存儲在與表不同的磁盤或者表空間
- 索引被刪除或者損壞,不會對錶產生影響,其影響只是查表的速度
- 索引一旦被建立,oracle管理系統會對其進行自動維護,而且由oracle管理系統決定何時使用索引,用戶不用在查詢查詢語句中指定使用哪個索引
- 在刪除一個表時,所有基於該表的索引會自動被刪除
- 通過指針加速oracle服務器的查詢速度
- 通過快速定位的方法,減少磁盤的I/O
索引可以提高查詢速度,我們只需要創建索引,至於怎麼使用索引,是oracle系統內部的事情
2.1 什麼情況下創建索引
- 列中數據值分佈很廣
- 列經常在where語句或連接條件中出現
- 表經常被訪問,而且量很大,訪問的數據大概佔總量的2%~4%
2.2 什麼情況下不要創建索引
- 表很小
- 經常更新
- 列不經常在where語句或連接條件中出現
2.3 創建索引
3 同義詞
- 使用同義詞訪問其它對象
- 方便訪問其它用戶的對象
- 縮短對象名字的長度
- 創建同義詞需要授權