重做日誌檔案與歸檔日誌檔案放到不同硬碟.
資料檔案與重做日誌檔案放到不同硬碟.
不同的重做日誌檔案、控制檔案、歸檔日誌檔案最好放到不同硬碟
控制檔案、重做日誌檔案放到高速硬碟。不行就放到同一硬碟高速區,即柱面號低的硬碟外部半圈。
歸檔日誌可以放在低速硬碟或分割槽
單純增加硬碟大小不太管用。最好增加硬碟物理數量和控制器數量。
system表空間只存放系統表和資料.
還原表空間只做還原用.
臨時表空間只做排序區使用.
資料表和索引放到不同表空間.索引多或大時,可以考慮不備份索引.
大物件(lob)最好放到單獨的表空間
檔案i/o監控與診斷
a.) 需要timed_statistics引數為true
b.) select file#, phyblkrd, phyblkwrt, readtim, writetim from v$filestat;
查詢表的資料行遷移狀況,需要先做統計.
a.) analyze table ***.yyy compute statistics;
b.) select num_rows, chain_cnt from dba_tables where owner = '***' and table_name = 'yyy';
注意''中內容需要大寫.其中chain_cnt欄位就是遷移數量.
如果遷移比較嚴重,首先要避免後面繼續發生.所以要加大pctfree的引數.
a.)首先確認當前值
select table_name, pct_free from dba_tables where owner = '***' and table_name = 'yyy';
b.) 調整,如需要的話.
alter table ***.yyy pctfree 30;
消除已有遷移
a.)非分割槽表
alter table ***.yyy move;
b.)其他表
ba.) 首先利用exp或expdp匯出該錶
bb.) 使用ddl語句truncat該錶. 注意不要使用dml語句delete,那樣會產生大量undo資料,且速度慢.
truncate table ***.yyy
bc.) 利用imp或impdp匯入之前匯出的資料
索引可能存在左右不平衡,或大量被標記刪除卻並未真正刪除的索引,從而影響效能.需修正.
a.)收集資訊
execute dbms_stats.gather_index_stats('使用者名稱','索引名');
或analyze index ***.iii compute statistics;
b.)查詢索引沉餘資訊
select name, (del_lf_rows_len/lf_rows_len) * 100 as wastage from index_stats;
index_stats表中的列含義:
lf_rows 當前索引記錄行數 lf_rows_len 全部索引長度
del_lf_rows 刪除的索引記錄行數 del_lf_rows_len 被刪除索引的全部長度
c.)查詢索引深度資訊
select index_name, num_rows, blevel, status from dba_indexes where table_owner = '***' and table_name = 'yyy';
一般blevel在3以下都沒問題.
d.)重建索引消除問題. 有時需要加大資料塊(db_block_size)大小來降低索引深度,推薦8k.
alter index ***.iii rebuild;
刪除大量資料時,避免使用delete而是使用truncate.可見減少還原資料量和執行時間.如有少量例外資料可使用臨時表暫存,而後再行匯入.如:
create table sales_temp as (select * from sales where rownum <= 18);
truncate table sales;
insert into sales (select * from sales_temp);
drop table sales_temp;
注意truncate是ddl不可被rollback
查詢重做日誌切換情況
select sequence#, to_char(first_time, 'rr-mm-dd hh:mm:ss') "date time" from v$log_history;
改變使用者預設表空間
alter user *** default tablespace tbs;
確認:select username, created, default_tablespace from dba_users where username = '***';
移動表和索引到不同表空間.
alter table *** move tablespace tbs;
alter index pk_emp rebuild tablespace tbs;
查詢:select table_name, tablespace_name from dba_tables where owner = '***';
select index_name, tablespace_name, table_name, status from dba_indexes where owner = '***';
注意,即使只是移動了表也要重建該錶的所有索引.因為此時索引的狀態(status)已是不可用(unusable).此時對該錶的訪問都是以全表掃瞄的方式進行的.
mysql優化小技巧
對mysql優化時乙個綜合性的技術,主要包括 a 表的設計合理化 符合3nf b 新增適當索引 index 四種 普通索引 主鍵索引 唯一索引unique 全文索引 c 分表技術 水平分割 垂直分割 d 讀寫 寫 update delete add 分離 e 儲存過程 模組化程式設計,可以提高速度 ...
Mysql優化小技巧
思夢php 2019 02 09 07 01 00 資料量和要求 優化技巧 先把每一條心得記錄在這裡,後面會進行實驗對其一一驗證。查詢資料總條數時,使用max id 而不是count 進行總量計數。當然,前提是id是從1開始自增長,並且沒有行被刪除過。對於常用的查詢字段建立索引。索引的速度優勢顯而易...
Android優化小技巧
示例 linearlayoutmanager linearlayoutmanager newlinearlayoutmanager this 此方法用於設定layoutmanager額外的預留空間,可以簡單的理解,如果我們返回乙個螢幕高度,則對於recyclerview來說,它將認為整個螢幕的長度是...