Oracle資料庫優化的一些建議

2020-12-14 資料庫及DotNet開發

1、ORACLE 優化內容

根據業務分析人員、設計人員、應用程式開發人員、資料庫管理員、系統管理員幾個不同的角色,針對每個不同角色,進行針對性的內容優化。

2、怎樣寫好SQL語句

(1)、 儘量簡單,模塊化

(2)、易讀、易維護

(3)、節省資源

(4)、 內存

(5)、CPU

(6)、 掃描的數據塊要少

(7)、少排序

(8)、不造成死鎖 ( 檢查是否被鎖:v$locked_object )

3、SQL優化的一般性原則

(1)、目標:

減少伺服器資源消耗(主要是磁碟IO);

(2)、設計方面:

合適的索引,索引的雙重效應,列的選擇性;

(3)、編碼方面:

利用索引,避免大表FULL TABLE SCAN;

合理使用臨時表;

避免寫過於複雜的sql,不一定非要一個sql解決問題;

在不影響業務的前提下減小事務的粒度;

4、優化概括(SQL語句基本原則)

● 查詢儘量用確定的列名,少用*號。

select * from bdc_zc_qs;

性能優化後的語句: select bzm_qs,ywh,... from bdc_zc_qs;

● 儘量少嵌套子查詢,這種查詢會消耗大量的CPU資源;

● 比較多or運算的查詢能使用union all 替換 or運算,建議分成多個查詢,用union all聯結起來;

● 多表查詢選擇最有效率的表名順序;

oracle解析器對表解析從右到左,所以記錄少的表放在右邊;

● 儘量多用commit語句提交事務,可以及時釋放資源、解鎖、釋放日誌空間、減少管理花費;

● 儘量避免使用dblink訪問資料庫,使用dblink會產生數據上的網絡交互,極大影響性能;

● union all 替換union,union 原理是把兩個集合union all起來在進行排序去重複;

● 儘量不要使用distint,distinct會產生排序;

● 視圖儘量不要使用order by;

● 避免在索引列上使用函數,計算等;

● 避免在索引列上使用not條件;

● 注意查詢列欄位類型,避免索引列自動轉換;

例如:select * from bdc_zc_qs qs where qs.ywh=666,這種情況oracle會轉換成to_number(qs.ywh)=666

● 用not exists 替代not in;

● 符號運算使用順序:=、>=、>、<>;

● 使用where條件時候把最優的條件放最後,oracle採用自下而上的順序解析WHERE子句,根據這個原理, 當在where 子句中有多個表聯接時,where 子句中排在最後的表應當是返回行數可能最少的表,有過濾條件的子句應放在where 子句中的最後。

5、SQL語句優化的過程

(1)、定位有問題的語句;

(2)、檢查執行計劃;

(3)、 檢查執行過程中優化器的統計信息;

(4)、分析相關表的記錄數、索引情況;

(5)、 改寫SQL語句、使用HINT、調整索引、表分析;

(6)、有些SQL語句不具備優化的可能,需要優化處理方式;

6、SQL語句執行過程

7、SQL語句處理過程

相關焦點

  • 「Oracle資料庫」oracle11g體系結構——數據字典詳解
    數據字典是oracle資料庫存放資料庫內部信息的地方,用來描述資料庫內部的運行和管理情況。比如像一個數據表的創建時間、所有者、用戶訪問權限等都是保存在數據字典中的,用戶可以通過查詢這些數據字典獲取幫助信息。
  • 金石科技承接武漢大學oracle資料庫一體機維保服務
    此次合作,是基於武漢大學、oracle公司、金石科技三方的共識,金石科技專注於IT數據服務平臺、數據安全技術研究,與oracle及眾多國際IT廠商均有密切合作,是Oracle公司可信賴和推薦的服務商。針對oracle高端一體機的維護維保項目,武漢大學相關業務負責人表示,正是考慮到金石科技的技術背景以及諸多優秀特質,才決定將運行核心業務的兩臺oracle資料庫一體機交予金石科技進行服務。
  • Oracle 資料庫的配置方案 完全分析
    本文從幾大方面詳細講述了Oracle資料庫的配置方案。 所有連接到Oracle的用戶必須執行兩個代碼模塊: 應用或Oracle工具:一資料庫用戶執行一資料庫應用或一個Oracle工具,可向Oracle資料庫發出SQL語句。
  • 安裝oracle客戶端 和plsql 連接資料庫完整版教程
    首先下載oracle 資料庫客戶端,下面為下載地址https://www.oracle.com/database/technologies/112010-win64soft.html注意:這裡下載可能需要登錄oracle 帳號,登錄即可下載。
  • Oracle資料庫常見真實問題處理步驟
    【IT168技術文章】1 解決Oracle 9.2.0.6版本資料庫由於ORA-07445宕機問題故障現象:XX網資料庫宕機,查看日誌發現以下內容:Wed Jun  8
  • Oracle 11g資料庫數據泵的實際應用
    將資料庫對象的元素數據(對象結構)或數據導出成二進位文件儲存;而數據泵導入則使用impdp工具將導出來二進位文件導入到Oracle資料庫中;這樣做可以實現數據移動/備份,若數據被意外/惡意損壞後可通過impdp來恢復資料庫的結構信息和數據。
  • ORACLE資料庫日常維護的九大知識點
    【IT168 評論】oracle資料庫是一種大型資料庫系統,一般應用於商業,政府部門,它的功能很強大,能夠處理大批量的數據,在網絡方面也用的非常多。首先要說的是,不同版本資料庫提供的系統表會有不同,你可以根據數據字典查看該版本資料庫所提供的表。
  • Oracle資料庫管理工具PLSQL安裝教程
    pl/sql developer是一個專門面向oracle的資料庫管理應用。本文介紹如何安裝plsql。用戶協議4、選擇安裝目錄建議更換默認的安裝目錄,因為低版本的oracle程序存在問題,不能識別路徑當中的括號,會導致程序無法正常運行。
  • 有關Oracle資料庫中同義詞的簡單介紹
    第1頁有關Oracle資料庫中同義詞的簡單介紹  Oracle資料庫中有關同義詞的一些知識是我們本文主要要介紹的內容,首先我們先看一個語句,如下:  create synonym table_name for user.table_name;  其中第一個user_table和第二個user_table可以不一樣。
  • Weblogic8配置Oracle資料庫連接池
    針對安裝目的的不同,選擇所需要的資料庫:   如果你對安裝Oracle9i還不熟悉的話,建議選中[通用]單選按鈕,這種安裝類型將會幫助你自動配置網絡連接和創建資料庫。  *選項說明:「通用」-安裝通用目的的預配置資料庫。通用類型適用於簡單的事務處理或複雜的查詢,支持大量並發用戶對數據的快速訪問。
  • 如何使用plsql工具創建oracle資料庫的定時器
    我們使用的資料庫大部分是oracle、mysql、db2、sql server等資料庫,在使用oracle最匹配的工具plsql,如何用plsql創建定時器呢?下面我簡單介紹使用工具創建定時器的方法。What裡面是一些存儲過程,可以是一個或者多個。多個之間用分好;隔開,可以數據一下注釋說明,格式「/*存過說明*/。點擊應用即可保存。點擊View SQL可以查看job對應的sql腳本。如果想查看一些腳本,處理通過打開文件夾的方式,也可以使用更方便的sql語句進行查看。
  • 資料庫詳解:Oracle 監聽器日誌解析
    擁有獨立於資料庫實例的啟動、終止命令控制臺(lsnrctl);ü Oracle監聽器進程伺候在伺服器一個特定埠上(默認為1521),等待通過Oracle Net Service連入到伺服器的客戶端請求;ü 另一方面,Oracle監聽器根據系統設置情況(各種環境變量)接受資料庫實例的服務列表。服務Service是對外提供的服務名稱,供本地命名服務依據Service名稱連入到其中。
  • 零基礎學Oracle之2:開始使用oracle
    零基礎學Oracle之2:開始使用oracle1、 資料庫管理工具而oracle則力推java,把java虛擬機內嵌到oracle中。[oracle@wl database]$ ./runInstaller 在資料庫軟體目錄下執行這個安裝,類似於windows的setup
  • 測試員必備:資料庫Oracle+PLSQL常見操作文檔整理!
    前言:本篇文章主要針對oracle資料庫進行介紹,包括和資料庫相關的概念及使用,比如常見存儲過程,plsql工具的使用及導入導出表、資料庫升級等操作,適合小白及有一定基礎的測試人員參考。世界萬物都可以被計算機理解為數據2.資料庫存放數據的場所叫做資料庫,資料庫對數據存放並管理,包括常見的增刪改查等 3.資料庫管理系統資料庫管理系統是一種操縱和管理資料庫的大型軟體
  • SQL Server資料庫和Oracle行轉列的特殊方案描述
    文章主要描述的是SQL Server資料庫和Oracle資料庫行轉列的一種比較典型操作方法,對於有些業務來說,數據在表中的存儲與其最終的Grid表現恰好相當於把源表倒轉,那麼這個時候我們就碰到了如何把行轉化為列的問題。
  • 使用plsql創建oracle定時器
    工作中,我們使用的資料庫大部分是oracle、mysql、db2、sql server等資料庫,在使用oracle最匹配的工具plsql的時候,如果用plsql創建定時器呢?下面我簡單介紹使用工具創建定時器的方法。
  • Oracle面試常見的二十個問題及回答
    【IT168 評論】  1.冷備份和熱備份的不同點以及各自的優點  解答:熱備份針對歸檔模式的資料庫,在資料庫仍舊處於工作狀態時進行備份。而冷備份指在資料庫關閉後,進行備份,適用於所有模式的資料庫。熱備份的優點在於當備份時,資料庫仍舊可以被使用並且可以將資料庫恢復到任意一個時間點。
  • 【分享】Oracle 常用運維命令匯總
    一、oracle建庫與刪庫命令(1)oracle11g建庫(一般習慣配置gdbname與sid名一樣,sys密碼與system密碼一樣,以方便記憶)[oracledb@ ~]$ dbca -silent -createDatabase -templateName /u01/oracle
  • 盤點三款主流Oracle資料庫第三方工具
    【IT168 技術】從應用開發到SQL管理,Oracle自帶的資料庫優化工具提供許多令人印象深刻的功能。但DBA也許已經發現,許多第三方Oracle資料庫管理工具比Oracle自帶工具還要更加健壯。
  • Win7系統安裝Oracle12C資料庫教程
    Oracle Database,簡稱Oracle,是甲骨文公司的一款關係資料庫管理系統。Windows環境下安裝Oracle12C資料庫相對Linux環境下安裝Oracle要簡單的多,設置下密碼口令默認幾步就可以安裝成功。