資料庫效能優化

2021-06-25 16:21:56 字數 1997 閱讀 5279

1、系統設計

1、縱向、橫向分割表,減少表的尺寸

縱向:欄位多。按業務主題分割。根據頁大小。

橫向:資料多。按條件分割表。

eg:按年儲存表,歷史資料表和當期資料更新表。

2、將資料處理交給db,編寫儲存過程

1)減少網路的開銷;

2)儲存過程是編譯、優化過,速度快。

3、唯讀查詢操作優化方法

1)資料量小的資料,放到程式快取中;

2)物化檢視,減除了為引用檢視的查詢動態建立結果集

的開銷

3)適當的資料冗餘,以減少資料庫表之間的鏈結操作,

提高查詢速度。

2、sql語句

1、 不使用游標。

declare cursor c_job is select * from emp for update;

c_row c_job%rowtype;

begin

for c_row in c_job loop

if c_row.sal<10000 then

newsal:=c_row.sal*2;

update emp set sal=newsal where current of c_job;

end if;

end loop;

end;

update emp set sal=case when sal<10000 then sal*2 else sal end;

避免使用not in

• select * from emp

where dept_id not in (select id from

dept)

select a.*

from emp a left outer join dept b on

a.dept_id=b.id

where b.id is null

• 避免使用in

• select * from emp

where dept_id in (select id from dept

where dept_name like 『研發%』);

select * from emp a where exists

(select 1 from dept b where a.dept_id=b.id and

b.dept_name like 『研發%』);

select a.*

from emp a, dept b

where a.dept_id=b.id and b.dept_name like 『研發%』;

使用group by不使用distinct

• select distinct dept_id from emp;

• select dept_id from emp group by

dept_id;

不要在一句話裡再三地使用相同的函式,

浪費資源,將結果放在變數裡再呼叫更快。

• 用or的字句可以分解成多個查詢,並且通

過union鏈結多個查詢。它們的速度只與

是否使用索引有關,如果查詢需要用到聯

合索引,用union all執行的效率更高。

記憶體臨時表的使用

• select * into #temp_emp from emp

where dept_id=『0101』;

• create global temporary table

temp_emp(……);

• declare global temporary table t_emp

like emp not logged with replace on

commit preserve rows;

3、部署

引數優化:記憶體、cpu

• 儲存優化:將資料、日誌、索引檔案使用

不同的io裝置。

資料庫效能優化

資料庫設計 實現sql server資料庫的優化,首先要有乙個好的資料庫設計方案。在實際工作中,許多sql server方案往往是由於資料庫設計得不好導致效能很差。實現良好的資料庫設計必須考慮這些問題 1.邏輯資料庫規範化問題 一般來說,邏輯資料庫設計會滿足規範化的前3級標準 第1規範 沒有重複的組...

資料庫效能優化

最近要寫一些關於企業級應用的優化內容的東西,就先從資料庫優化入手吧,在這裡先記錄一下。作為一名有資料庫教育背景的工作人員,我著重從db的角度介紹一下,我認為的db優化方式。首先,撇開經濟商業用處不談,db效能優化的原則主要是,通過盡可能少的磁碟訪問獲得所需的資料。一般而言,資料的是優化可以從三方面分...

資料庫效能優化

1.在join表的時候使用相當型別的例,並將其索引 2.千萬不要 order by rand 3.使用 enum 而不是 varchar 4.永遠為每張表設定乙個id 5.從 procedure analyse 取得建議 6.盡可能的使用 not null 7.固定長度的表會更快 myisam 適合...