Oracle 效能優化

2021-09-08 20:22:29 字數 1682 閱讀 7248

1.在select語句中避免使用*

2.使用truncate清空表

2.1語法

truncate [table|cluster] shema.[table_name][cluster_name][drop|reuse storage]

3.使用rowid高效刪除重覆記錄

rowid是可以唯一標記記錄的物理位置

delete

from 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

)

4.高效統計表的記錄行數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_rows

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以上,記錄小沒有意義 建索引的列為關聯比較頻繁的列,比如志願表的報名號,建索引的列沒有空值 建索引的列值基本固定不會修改,否則效率會打折扣,需要做定期重建索引 建了索引會影響對該錶的新增和修改的效率,如果可能,生產階段不建,查詢階段建 二 語句寫法及程式實現 ...