1.在select語句中避免使用*
2.使用truncate清空表
2.1語法
truncate [table|cluster] shema.[table_name][cluster_name][drop|reuse storage]
3.使用rowid高效刪除重覆記錄
rowid是可以唯一標記記錄的物理位置
delete4.高效統計表的記錄行數select table_name, t.num_rows, t.last_analyzed from tabs t where table_name=』table_name』;可能統計的不是很準確,在統計前先在command下面執行exec dbms_stats.gather_table_stats('【空間名稱】','【tablename】',cascade=>true);重新整理表中的num_rowsfrom tmp001 a where rowid notin(
select
max(rowid) from
tmp001 b
where a.id=
b.id
and a.name=
b.name
and a.gender=
b.gender
and a.age=
b.age
and a.address=
b.address
)
5.盡量多使用commit
commit所釋放的資源:
6.使用exists替代in
在子查詢中,[not]in子句將執行乙個內部的排序與合併,無論哪種情況,[not]in都是最低效的,因為他要對子查詢中的表執行乙個全表遍歷。
7.修改oracle中sga的大小
alter system set sga_max_size=1000m scope=spfile;此處修改sga的大小為1000m
8.使用合理的索引
8.1監視索引是否被引用
首先建立索引
create監視index idx_tmp001_n1 on tmp001(id);
以上結果說明,該索引建立還未使用過,那麼我們按照id查詢一次在看看結果,先執行查詢語句
select再次監視*from tmp001 where id=
1
此時的結果已經變為yes
9.避免全表掃瞄
以下情況為全表掃瞄:
oracle效能優化
今天有個問題沒有答上來 oracle的效能優化。查了查資料,學習學習。優化心得摘抄 資料庫優化oracle9i 很多的時侯,做oracle dba的我們,當應用管理員向我們通告現在應用很慢 資料庫很慢的時侯,我們到資料庫時做幾個示例的select也發現同樣的問題時,有些時侯我們會無從下手,因為我們認...
oracle效能優化
sql共享原理 為了不重複解析相同的sql語句,在第一次解析之後,oracle將sql語句存放在記憶體中。這塊位於系統全域性區域sga systemglobal area 的共享池 shared buffer poo1 中的記憶體可以被所有的資料庫使用者共享。因此,當你執行乙個sql語句 有時被稱為...
Oracle效能優化
一 索引 適用及原則 表記錄量在3000以上,記錄小沒有意義 建索引的列為關聯比較頻繁的列,比如志願表的報名號,建索引的列沒有空值 建索引的列值基本固定不會修改,否則效率會打折扣,需要做定期重建索引 建了索引會影響對該錶的新增和修改的效率,如果可能,生產階段不建,查詢階段建 二 語句寫法及程式實現 ...