資料庫效能能最佳化

來源:互聯網
上載者:User

最佳化哪些內容
資料庫輸送量
 單位時間記憶體取的資料量
資料庫使用者回應時間
 系統服務時間
  提高資料庫的輸送量
 使用者等待時間
  減少使用者訪問同一資料庫資源的衝突率
效能最佳化過程
1. 調整資料結構的設計
 哪些表經常訪問:建立索引
 哪些表經常聯結:建立冗餘欄位
2. 調整應用程式結構設計
 CS/BS:人少與人多的問題
 OLTP/OLAP:資料更新多/查詢多的問題
3. 調整資料庫SQL語句
 SQL語句是應用系統最關鍵的效能
4. 調整伺服器記憶體配置
 儲存更多共用資源
5. 調整硬碟I/O
6. 調整作業系統參數
SGA(全域共用記憶體) 共用池
共用池是PL/SQL程式進行文法分析、編譯、執行的記憶體地區,共用池的大小直接影響資料庫的效能。儲存了對SQL分析結果,減少了分析相同SQL的時間,提高SQL執行效率。
SELECT子句中避免使用 ‘ * ‘
、*‘是一個方便的方法但也是一個非常低效的 方法. 實際上,ORACLE在解析的過程中, 會將’*’ 依次轉換成所有 的列名, 這個工作是通過查詢資料字典完成的, 這意味著將耗費更多的時間.不必每次取出所有的資料規則:
not exists,not in,表串連。
規則:not exists代替not in
規則:用表串連替換EXISTS
1、查詢一個表有,而另一個表沒有的記錄,用not exists最快。
2、查詢多個表都有的記錄,用表的對待聯結最快
  --查詢沒有人的部門
 --分析 員工表中沒有此部門編號
select * from dept where dept.deptno not in
(select emp.deptno from emp);  -- not in
最佳化方式
select * from dept where not exists -- not exists 效能比not in好
(select 'a' from emp where emp.deptno = dept.deptno)
表串連
select * from emp where emp.deptno in (select dept.deptno from dept)
select * from emp where exists (select 'd' from dept where dept.deptno = emp.deptno);
最佳化方式
select * from emp join dept on emp.deptno = dept.deptno;

索引使用注意事項
索引的本質就是通過建立一個內部的索引表來達到快速搜尋的目的。
索引可以提高在該表上執行SELECT語句的速度,但是會降低資料增刪改語句執行的速度。
應該使用索引的地方
 被索引的列經常在where條件中被查詢
 查詢時返回資料比較少(少於1/3)
不應該使用索引的地方
 小表不需要建索引
 表的索引列經常修改時
 返回的資料很多時
儘快使用COMMIT,但是要注意事務完整性。
財務1部為張三加500塊,財務2部為張三減500塊。
張三給李四轉帳500塊。
對經常修改的欄位使用char類型
 如果一個VARCHAR列經常被修改,而且每次被修改的資料的長度不同,這會引起‘行遷移’(Row Migration)現象,而這造成多餘的I/O,是資料庫設計和調整中要儘力避免的,在這種情況下用CHAR代替VARCHAR會更好一些。
 因為CHAR的效率比VARCHAR的效率稍高。在資料庫查詢資料時,對於變長類型欄位,必須要先擷取資料的長度,而定長類型欄位而沒有這一步,所以查詢效率要高於變長類型欄位。
 在實際開發中建議使用char(1)來代替BIT類型,以提高系統的相容性。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.