數據庫的功能就是組織管理和存儲各種數據庫對象。數據庫中的對象是我們進行數據管理的基本。本篇會回顧一下數據庫對象的一些基本知識,讓我們更加清晰的了解這些Oracle數據庫對象。
1. 表(Table)
我們操作數據庫的時候,大部分都是操作表來完成的。表是一個邏輯概念,是數據庫組織管理數據的基本單位。
表可以分為關系表和對象表。關系表包含堆表、索引組織表、外部表。我們常用的為堆表。
堆表對應的段是以堆的結構形式存儲的,存儲的數據邏輯上市無序的。
表與段(Segment)對應的關系如下
- 對于非分區表,一個表對應一個段;
- 對于分區表,一個分區對應一個段;
- 對于有子分區的表,一個子分區對應一個段;
其他的數據庫對象與此類似
1.1 表分區
表分區(Partition),就是根據用戶的數據情況和業務需求,將表中的數據由一個段中變為多個段存儲,以方便對用戶數據的管理和維護,提升查詢操作的性能。當然也有一些缺點,使用不當的話會出現一些性能問題;應用分區表需要有更多的經驗,更全面的考量,這也對開發者提出了更高的要求。
何時應用分區:
- 首先需要考慮的是數據量,足夠大的數據量才有分區的必要,少量數據根本沒必要進行分區。Oracle官方推薦,表所占的存儲空間超過2GB時,可以考慮對表進行分區。一般來說盡量避免分區,需要分區一定要有充分的理由。
- 如果當前非分區的表已經影響到了用戶對數據的管理和維護,可以考慮分區。
- 分區之后是否能提高用戶的查詢及操作性能。
關于如何分區,我們后面的文章在繼續分析。
2. 索引(Index)
索引是建立在表上的邏輯對象。索引可以提高表數據的訪問查詢效率,對性能優化有著非常大的作用。索引也是和一個或者多個段相關聯,索引最終存儲的位置也是段。不同類型的索引有不同的存儲邏輯結構,如B樹,Bitmap(位圖)等。
索引是表的可選項,創建適當的索引是數據庫優化的重中之重。然而索引可以提高查詢效率,同時也會降低DML操作的效率,兩者綜合考慮后才會有比較好的性能。
關于索引的數據庫優化方案,大多是避免索引失效,優化索引使用順序等。B*樹索引,位圖索引等索引會在后面的文章中具體去說一下。
3. 簇(Cluster)
簇是一個包含一個或多個表數據的數據庫對象,其中被包含的表中都會具有共同的一列或者多列,這些列稱為簇鍵列。
創建簇需要相應的權限,開發中使用不多。簇可以分為索引簇和哈希簇,區別就是查找數據的時候前者通過簇鍵列上的索引,后者使用簇鍵列的哈希值。根據使用場景來確定來使用那種類型。
4.視圖(View) & 物化視圖(Materialized View)
視圖是一種虛定義的邏輯對象,主要用來簡化業務邏輯、方便開發維護,視圖并不包含任何數據,其數據基于視圖對應的其他對象。
視圖可以提供一些增刪改查的操作,同時有一定的安全性,可以屏蔽一些列,使用起來也比較靈活。但對于性能會有一些影響。
物化視圖,相對于視圖而言,物化視圖可以實際存儲數據,和表一樣對應相關的段。
物化視圖可以用來匯總,計算等業務。同時也可以在一定條件下進行增刪改查,并且也可以建立索引等。
5. 同義詞(Synonym)
同義詞也是虛的一個邏輯對象,不會存儲任何數據。本質上算是其他數據對象的一個別名。同時可以將同義詞的權限分配給不同的用戶,作為安全管理的一種方式。
6. 序列(Sequence)
序列不存儲任何數據,用戶可以通過序列獲取一系列有序的數值。
定義序列的時候可以定義序列名,升降序,步長等。如果負載并發很高的情況下,序列的增長會影響整體的性能。
7. 過程(Procedure) & 函數(Function)
過程和函數都是虛邏輯對象,不存儲數據。主要功能就是使用數據庫編碼的調用來執行一系列任務。
過程和函數都是數據庫中的對象,有一組SQL或者一些其他的PL語句組成。為解決特定問題而編寫的一單元。
不同的是函數有一個返回值,除此之位,過程和函數在其他方面均相同。
8.觸發器(Trigger)
觸發器也是數據庫的一個邏輯對象,不存儲數據。主要是通過數據庫編碼,在事件自動觸發的時候執行一組命令。
其執行過程是自動的,當某一個事件觸發相關條件后,則會執行。
9. 約束(Constraint)
約束是數據庫中的邏輯對象,其功能是通過一些內部或者自動逸邏輯來實現對數據的檢查和限制,使其符合某種規則或者標準。從而實現數據的規則化,標準化。
常見的約束有
- 主鍵約束
- 唯一約束
- 非空約束
- 外鍵約束
- 自定義約束(檢查約束)
總結
Oracle的基本對象在開發中使用比較頻繁,我們經常會使用到這些對象。每一種對象其背后都有復雜的工作原理以及使用技巧,這里先簡單介紹這些常用對象,后面再結合實際應用來說了其在開發優化中的應用。
-
存儲
+關注
關注
13文章
4314瀏覽量
85851 -
數據庫
+關注
關注
7文章
3799瀏覽量
64395 -
Oracle
+關注
關注
2文章
289瀏覽量
35134
發布評論請先 登錄
相關推薦
評論