資料庫中級教程:第一講 分割槽資料表的建立
當資料表的資料的記錄數達到數百萬,甚至是數千萬條記錄時,不僅資料的插入,刪除等操作,效能很差,而且
資料的查詢也是很慢的。包括僅是統計一下記錄的數量也是很耗時的。
oracle提供的解決方案之一是把資料表設定為分割槽表,即在物理儲存上,它們是多個資料表,在邏輯上,它們是
一張資料表,這既方便查詢語句的編寫,又能以分而治之的思想,實現表的儲存,大而化小。提高資料庫的效能。
表分割槽的型別有範圍分割槽,列表分割槽,雜湊分割槽,組合範圍分割槽,組合列表分割槽,
組合雜湊分割槽,引用分割槽和系統分割槽。
注意事項,第一是要有許可權,第二是如果分割槽引用了表空間的名稱,那麼要保證事先建立了相應的表空間,保證
表空間的存在性。此外對於資料量很大的資料表,要注意表的儲存空間的增長情況,防止出現撐爆磁碟空間的問題。
即使使用了san,也必須進行儲存容量的規劃。
範圍分割槽的資料表的建立示例如下:
create table range_sales
( prod_id number(6)
, cust_id number
, time_id date
, channel_id char(1)
, promo_id number(6)
, quantity_sold number(3)
, amount_sold number(10,2)
)partition by range (time_id)
(partition sales_q1_1998 values less than (to_date('01-apr-1998','dd-mon-yyyy')),
partition sales_q2_1998 values less than (to_date('01-jul-1998','dd-mon-yyyy')),
partition sales_q3_1998 values less than (to_date('01-oct-1998','dd-mon-yyyy')),
partition sales_q4_1998 values less than (to_date('01-jan-1999','dd-mon-yyyy')),
partition sales_q1_1999 values less than (to_date('01-apr-1999','dd-mon-yyyy')),
partition sales_q2_1999 values less than (to_date('01-jul-1999','dd-mon-yyyy')),
partition sales_q3_1999 values less than (to_date('01-oct-1999','dd-mon-yyyy')),
partition sales_q4_1999 values less than (to_date('01-jan-2000','dd-mon-yyyy')),
partition sales_q1_2000 values less than (to_date('01-apr-2000','dd-mon-yyyy')),
partition sales_q2_2000 values less than (to_date('01-jul-2000','dd-mon-yyyy')),
partition sales_q3_2000 values less than (to_date('01-oct-2000','dd-mon-yyyy')),
partition sales_q4_2000 values less than (maxvalue))
列表分割槽的資料表的建立示例如下:
create table list_customers
( customer_id number(6)
, cust_first_name varchar2(20)
, cust_last_name varchar2(20)
, cust_address cust_address_typ
, nls_territory varchar2(30)
, cust_email varchar2(30))
partition by list (nls_territory) (
partition asia values ('china', 'thailand'),
partition europe values ('germany', 'italy', 'switzerland'),
partition west values ('america'),
partition east values ('india'),
partition rest values (default));
雜湊分割槽的資料表的建立示例如下:
create table hash_products
( product_id number(6) primary key
, product_name varchar2(50)
, product_description varchar2(2000)
, category_id number(2)
, weight_class number(1)
, warranty_period interval year to month
, supplier_id number(6)
, product_status varchar2(20)
, list_price number(8,2)
, min_price number(8,2)
, catalog_url varchar2(50)
, constraint product_status_lov_demo
check (product_status in ('orderable'
,'planned'
,'under development'
,'obsolete')
) )partition by hash (product_id)
partitions 4
store in (tbs_01, tbs_02, tbs_03, tbs_04);
引用分割槽的資料表的建立示例如下
create table part_order_items (
order_id number(12) primary key,
line_item_id number(3),
product_id number(6) not null,
unit_price number(8,2),
quantity number(8),
constraint product_id_fk
foreign key (product_id) references hash_products(product_id))
partition by reference (product_id_fk);
資料庫中級教程 第十一講 資料庫的各種鎖
資料庫中級教程 第十一講 資料庫的各種鎖 資料庫的效能的問題,有一大部分是與鎖相關的。對於dba,必須清楚地了解資料庫 的鎖機制。資料庫是乙個多使用者使用的共享資源。當多個使用者併發地訪問資料時,在資料庫中就 會產生多個事務同時訪問同一資料的情況。若對併發操作不加控制就可能會讀取和存 儲不正確的資料...
資料結構 第一講
資料元素在計算機中的儲存表示方式稱為資料的儲存結構,也稱為物理結構。順序儲存結構 順序儲存結構是把資料元素儲存在一塊連續位址空間的記憶體中,其特點是邏輯上相鄰的資料元素在物理上也相鄰,資料間的邏輯關係表現在資料元素的儲存位置關係上。鏈式儲存結構 指標是指向物理儲存單元位址的變數。由資料元素域和指標域...
第一講 大資料概述
內容來自廈門大學林子雨教授的 大資料技術原理 課程,作為學習筆記。1.1大資料時代 1.2大資料概念 1.3大資料的影響 1.4大資料的應用 1.5大資料關鍵技術 1.6大資料計算模式 1.7大資料產業 1.8大資料與雲計算 物聯網的關係 1.1.1第三次資訊化浪潮 第一次 1980年前後 個人計算...