1. 程式人生 > >Oracle資料庫優化的經驗總結

Oracle資料庫優化的經驗總結

個人理解,資料庫效能最關鍵的因素在於IO,因為操作記憶體是快速的,但是讀寫磁碟是速度很慢的,優化資料庫最關鍵的問題在於減少磁碟的IO,就個 人理解應該分為物理的和邏輯的優化, 物理的是指oracle產品本身的一些優化,邏輯優化是指應用程式級別的優化物理優化的一些原則:  1)Oracle的執行環境(網路,硬體等) 
  2)使用合適的優化器 
  3)合理配置oracle例項引數 
  4)建立合適的索引(減少IO) 
  5)將索引資料和表資料分開在不同的表空間上(降低IO衝突) 
  6)建立表分割槽,將資料分別儲存在不同的分割槽上(以空間換取時間,減少IO) 
 
 
邏輯上優化: 

  1)可以對錶進行邏輯分割,如中國移動使用者表,可以根據手機尾數分成10個表,這樣對效能會有一定的作用 


  2)Sql語句使用佔位符語句,並且開發時候必須按照規定編寫sql語句(如全部大寫,全部小寫等)oracle解析語句後會放置到共享池中, 如: 
  select * from Emp where name=?這個語句只會在共享池中有一條,而如果是字串的話,那就根據不同名字存在不同的語句,所以佔位符效率較好 
  3)資料庫不僅僅是一個儲存資料的地方,同樣是一個程式設計的地方,一些耗時的操作,可以通過儲存過程等在使用者較少的情況下執行,從而錯開系統使用的高峰時間,提高資料庫效能 
  4)儘量不使用*號,如select * from Emp,因為要轉化為具體的列名是要查資料字典, 比較耗時 
  5)選擇有效的表名 

  對於多表連線查詢,可能oracle的優化器並不會優化到這個程度, oracle 中多表查詢是根據FROM字句從右到左的資料進行的,那麼最好右邊的表(也就是基礎表)選 擇資料較少的表,這樣排序更快速,如果有link表(多對多中間表),那麼將link表放最右邊作為基礎表,在預設情況下oracle會自動優化,但是如 果配置了優化器的情況下,可能不會自動優化,所以平時最好能按照這個方式編寫sql 
  6)Where字句規則: 
  Oracle 中Where字句時從右往左處理的,表之間的連線寫在其他條件之前,能過濾掉非常多的資料的條件,放在where的末尾, 另外!=符號比較的列將不使用索引,列經過了計算(如變大寫等)不會使用索引(需要建立起函式), is null、is not null等優化器不會使用索引 

  7)使用Exits Not Exits 替代 In Not in 
  8)合理使用事務,合理設定事務隔離性,資料庫的資料操作比較消耗資料庫資源的,儘量使用批量處理,以降低事務操作次數

相關推薦

Oracle資料庫優化總結

分析和優化的基本步驟如下: 1、如果是SQL語句的寫法問題,我們可以通過在不更改業務邏輯的情況下改寫SQL來加以解決; 2、如果是不必要的全表掃描/排序而導致了目標SQL的效能問題,我們可以通過建立合適的索引(包括函式索引、點陣圖索引等)來加以解決; 3、如果是表或

Oracle資料庫優化經驗總結

個人理解,資料庫效能最關鍵的因素在於IO,因為操作記憶體是快速的,但是讀寫磁碟是速度很慢的,優化資料庫最關鍵的問題在於減少磁碟的IO,就個 人理解應該分為物理的和邏輯的優化, 物理的是指oracle產品本身的一些優化,邏輯優化是指應用程式級別的優化物理優化的一些原則:  1)Oracle的執行環境(網路,硬體

[資料庫遷移] ORACLE到MYSQL經驗總結

最近工作中有個專案需要做資料庫遷移,ORACLE到MYSQL,WEBLOGIC到TOMCAT. 原因是ORACLE和WEBLOGIC都是收費的,降低專案成本。 經過半個月的工作總算初見成效,以下是工作中的經驗總結。 1.轉移資料庫檔案(表結構,序列,檢視,索引,資料)

MySQL/Oracle資料庫優化總結(非常全面)

MySQL資料庫優化的八種方式(經典必看) 引言: 關於資料庫優化,網上有不少資料和方法,但是不少質量參差不齊,有些總結的不夠到位,內容冗雜 偶爾發現了這篇文章,總結得很經典,文章流量也很大,所以拿到自己的總結文集中,積累優質文章,提升個人

oracle資料庫優化總結

1.      資料庫優化基本知識I/O 資料庫的基本作用就是實現對資料的管理與查詢。隨之而來的就是大量的IO操作, 在海量資料的情況下,資料庫的效能問題有80%以上和IO有關。優化ORACLE資料庫的I/O效能一般有兩個方面,一是減少處理時間,二是減少等待事件。資料塊ora

資料庫效能優化經驗總結

1.資料庫訪問優化法則 要正確的優化SQL,我們需要快速定位能性的瓶頸點,也就是說快速找到我們SQL主要的開銷在哪裡?而大多數情況效能最慢的裝置會是瓶頸點,如下載時網路速度可能會是瓶頸點,本地複製檔案時硬碟可能會是瓶頸點,為什麼這些一般的工作我們能快速確認瓶頸點呢,因為

Java集合類操作優化經驗總結

設置 mar ise long 初始化 實際類型 線性表 core 不一定 在實際的項目開發中會有非常多的對象,怎樣高效、方便地管理對象,成為影響程序性能與可維護性的重要環節。Java 提供了集合框架來解決此類問題。線性表、鏈表、哈希表等是經常使用的數據結構,在

oracle資料庫設計經驗

一、實體與表對應關係 表<=>實體,欄位<=>屬性。 二、表與表的關係(實體間的關係):一對一、一對多、多對多 一對一:一條記錄只對應其他表中的一條記錄有關係 學生基本資訊表t_student,成績表t_studentScore含有一個外來鍵st

Hbase常用優化、Hbae效能優化、Hbase優化經驗總結

Hbase優化 1.預先分割槽 預設情況下,在建立 HBase 表的時候會自動建立一個 Region 分割槽,當匯入資料的時候,所有的 HBase 客戶端都向這一個 Region 寫資料,直到這個 Region 足夠大了才進行切分。一種可以加快批量寫入速度的方法是通過預先建立一些空的 Reg

ORACLE資料庫基礎知識總結

1、RMAN全備備份檔案的順序 備份歸檔日誌、所有的資料檔案、控制檔案、spfile、再次備份歸檔日誌 2、redo日誌丟失恢復 redo日誌的三種狀態是current、active、inactive inactive,可以重建 clear log active、current不能變成inactive,只能通

oracle資料庫逐步學習總結【基礎二】

  原創作品,轉載請在文字開頭明顯位置註明出處:https://www.cnblogs.com/sunshine5683/p/10067872.html 接著上一篇,繼續總結!   五、oracle表管理 首先,在開頭說一下sys使用者和system使用者的區別:sys使用者是超

Oracle資料庫常用操作總結(一)

--oracle cs架構軟體 --客戶端 --tns  --協議 --ip --埠 --資料庫名字 --監聽如果出了問題,先刪除所有監聽,再重建。netca。tns檔案中名字不能重複, --oracle預設自帶兩個管理員使用者 sys system 這兩個使用者在登入時

WPF效能優化經驗總結

原文地址:https://www.cnblogs.com/chiniao/archive/2010/08/09/1795499.html WPF效能優化一、Rendering Tier 1. 根據硬體配置的不同,WPF採用不同的Rendering Tier做渲染。下列情況請特別注意,因為在這

SQL優化經驗總結34條

我們要做到不但會寫SQL,還要做到寫出效能優良的SQL,以下為筆者學習、摘錄、並彙總部分資料與大家分享! 我們要做到不但會寫SQL,還要做到寫出效能優良的SQL,以下為筆者學習、摘錄、並彙總部分資料與大家分享! (1) 選擇最有效率的表名順序(只在基於規則的優

SQL優化經驗總結

(1) 選擇最有效率的表名順序(只在基於規則的優化器中有效): ORACLE 的解析器按照從右到左的順序處理FROM子句中的表名,FROM子句中寫在最後的表(基礎表 driving table)將被最先處理,在FROM子句中包含多個表的情況下,你必須選擇記錄條數最少的表作為

EasyDemo*oracle資料庫小知識點總結

1.新建表的兩種方式:   1.1sql語句建立(需重新整理)   1.2sqldeveloper-》選中資料庫->表->滑鼠右擊->新建表 2.對錶進行編輯:   選中要操作的表-&

Oracle 資料庫基礎知識點總結(一)

 1.資料庫表的完整性  ①實體完整性:靠主鍵來維護,資料唯一且不能為空 ②參照完整性:靠外來鍵來維護,主鍵表無記錄外見表則無法操作資料 ③域完整性:check()約束 not null 約

Lucene底層原理和優化經驗分享(2)-Lucene優化經驗總結

  系統優化遵從木桶原理:一隻木桶能盛多少水,並不取決於最高的木板,而取決於最短的那塊木板。Lucene優化也一樣,找到效能瓶頸,找對解決方法,才能事半功倍,本文將從三方面闡述我們的Lucene優化經驗:   1. 找準方向 -> Lucene效能瓶頸分

oracle資料庫之操作總結

## 連線資料庫: sqlplus test/test#123#@localhost:1521/ORCL ## 查詢資料庫所有的表: select table_name from user_tables; ## 查詢資料庫表的欄位名: desc 表名;

Oracle資料庫優化的方法

1、減少訪問資料庫的次數。2、不要讓資料庫做得太多。(1)SELECT子句中避免使用' * ':ORACLE在解析的過程中,會將' * '依次轉換成所有的列名, 這個工作是通過查詢資料字典完成的,這意味著將耗費更多的時間。(2)sql語句用大寫的:因為oracle總是先解析sql語句,把小寫的字母轉換成大寫的