Oracle(三)--> 其他資料庫物件(簡單扼要論序列),oracle--
開篇一提·_· 除視圖外,其他資料庫物件分別為:序列、同義字、索引。其中最重要的是序列部分(與觸發器相關),同義字和索引只做瞭解。一、1、序列概念可供多個使用者用來產生唯一數值的資料庫物件1)自動提供唯一的數值2)共用對象3)主要用於提供主鍵值4)將序列值裝入記憶體可以提高訪問效率。
2、定義序列的語句
Sequence 兩個屬性( nextval、currval )的使用。1)查詢當前值:
下一個值
注意事項:nextval 和 currval 偽列1、nextval 返回序列中的下一個有效值,任何使用者都可以引用2、currval 中存放序列的當前值3、nextval 應在 currval 之前指定,否則會報 currval 尚未在此會話中定義的錯誤。
查詢序列後,顯示如下:
2)序列的修改
改為:每次增長1,以及不迴圈,即表中 id 無上限。插入資料後:
修改序列的注意事項:1、必須是序列的擁有者或對序列有 alter 許可權;2、只有將來的序列值會被改變;3、改變序列的初始值只能通過刪除序列之後重建序列的方法實現。
3)序列的使用1、將序列值存入記憶體可提高訪問效率2、序列在下列情況下出現裂痕: -- 復原 -- 系統異常 -- 多個表同時使用一個序列(一個表維護一個序列,不要多個表由一個序列維護)3、如果不將序列的值存入記憶體(nocache),可使用表 user_sequences 查看序列當前的有效值。
二、索引1、概念1)一種獨立於表的模式對象,可以儲存在與表不同的磁碟或資料表空間中2)索引被刪除或損壞,不會對錶產生影響,其影響的只是查詢的速度3)索引一旦建立,Oracle 管理系統會對其進行自動維護,而且由 Oracle 管理系統決定何時使用索引。使用者不用再查詢語句中指定使用哪個索引4)在刪除一個表時,所有基於該表的索引會自動被刪除5)通過指標加速 Oracle 伺服器的查詢速度6)通過快速定位元據的方法,減少磁碟的 I/O
2、建立索引1)自動建立:在定義 primary key 或 unique 約束後系統自動在響應的列上建立唯一性索引2)手動建立:使用者可以在其他列上建立非唯一的索引,以加速查詢
例:在一個或多個列上建立索引 建立成功顯示:Index created
3、何時建立索引 -- 列中的資料值分布範圍很廣 -- 列經常在where 子句或串連條件中出現(使用頻繁就需要索引) -- 表經常被訪問而且資料量很大,訪問的資料大概占資料總量的 2% 到 4%
4、什麼時候不要建立索引 -- 表很小 -- 列不經常作為串連條件或出現在 where 子句中 -- 查詢的資料大於 2% 到 4% -- 表經常更新
三、同義字 見資料庫物件一文
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。