優化表效能----讀oracle database 11g 效能優化攻略
1.建立具有最優化效能的資料庫
合理地配置並建立資料庫有助於保證資料庫的優良效能,每個使用者都分別預設的表空間和臨時表空間,確保業務表不要放在系統表空間下等等
2.建立具有最優性能的表空間
建立本地管理,自動段管理的表空間,合理設定表空間資料檔案的大小以及存放位置
3.匹配表的型別與業務型別
oracle提供很多表型別,結合業務合理選擇建立表的型別,選擇表型別前要了解這種表型別的優缺點,一般情況下堆組織表就能滿足我們
4.選擇有益於效能的表特性
合理設計表的列型別已經長度,合理設計表的儲存類引數,按照規則命名表名和欄位名以便於維護
5.在建立表時使盤區分配延時
根據實際情況確定,例如在按照乙個具有數千張表和索引的應用時,每張表和索引都被設定最初分配10m的磁碟空間,你希望最快安裝完成,但空間分配需要一段時間,你可以使空間分配在第一條記錄插入表中時分配
在oracle 11g r2版本中預設將表以及索引的物理空間分配推遲到第一條記錄插入表中時,這樣的好處與害處
1.使具有大量表和索引的應用能夠快速安裝
2.新建立的物件沒有分配任何空間,直到第一條記錄插入
3.建立第一行資料耗費的時間比以前版本稍長,對於大多數的應用,這種效能的降低並不顯著
說明:可以將資料庫引數deferred_segment_creation設定為false,將延遲段建立屬性禁用,這個引數在r2中預設為true
還可以在建立表時控制延遲段建立行為,create table 新字句:segment create immedaite和segment creation deferred
6.資料載入速度的最大化
將表設定為nologging使其產生較少的重做日誌
使用直接路徑載入資料,避開了緩衝區快取,直接將資料載入到資料檔案中
7.高效的移除表中的資料
盡量使用truncate來代替delete
使用delete要控制事物的大小,分批提交
可以使用drop表後再重建表,必須要重建表上的索引、約束、授權以及觸發器
8.手動生成段顧問建議
根據表的段顧問建議來分析表是否需要進行重組
9.重建跨多個資料塊的資料行
存在行遷移,其中資料行存在多個資料塊中,這種情況會增加io的使用率,並導致對這張表的查詢速度變慢
使用move和analyze table來解決行遷移問題
10.釋放未使用的表儲存空間
表存在高水位問題,使查詢效能變成差
使用alter table ...shrink space語句來釋放未使用的空間
11.壓縮資料
a.在dss型別的資料庫中,使用oracle基本壓縮特性,將直接路徑載入的資料壓縮成堆組織表。
b.在oltp型別的資料庫中,使用compress for oltp字句為所有dml語句啟用壓縮
12.列級別壓縮資料
只對oracle exadata產品有效
13.監控表的使用率
刪除未使用的表釋放空間
mysql建表效能優化 MYSQL建表優化
除非單錶資料未來會一直不斷 否則不要一開始就考慮拆分,拆分會帶來邏輯 部署 運維的各種複雜度,一般以整型值為主的表在千萬級以下,字串為主的表在五百萬以下是沒有太大問題的。1 字段 a 盡量使用tinyint smallint medium int作為整數型別而非int,如果非負則加上unsigned...
MySQL效能優化之表結構優化
第一正規化 屬性 字段 的原子性約束,要求屬性具有原子性,不可再分割 第二正規化 記錄的惟一性約束,要求記錄有惟一標識,每條記錄需要有乙個屬性來做為實體的唯一標識。第三正規化 屬性 字段 冗餘性的約束,即任何字段不能由其他字段派生出來。外來鍵解決設計原則 在資料冗餘和處理速度之間找到合適的平衡點 資...
建立索引 大幅優化表效能
有幾點需要注意,具體如下 1 表的主鍵使用int或bigint資料型別,因為cpu特別擅長整數計算 2 首先應為主鍵建立聚集唯一索引 3 為常用的作為查詢條件的字段,建立非聚集索引,這裡要包含主鍵,如 對學號建非聚集索引,格式為index id 主鍵,numofstudent 學號 這樣可以加速查詢...