Oracle自帶工具sql優化集-SQL Tuning Advisor (使用心得體會)

DBA_每日記 發表於2019-10-09

如何有效的診斷和監控高負載的SQL對於DBA來說並非是件容易的事情,對SQL語句手工調優需要很多的經驗和技巧,

      結合個人經驗常見如下問題:
          . 對SQL語句本身進行優化以便獲得更優的執行計劃;
          . 合理地調整資料讀取方式(例如通過索引)以便能更快地訪問資料;
          . 合理的設計SQL實現方式以實現最優的架構(例如:使用靜態SQL還是動態SQL)
      當然,手工調優又是一件非常耗時的工作(我還是更喜歡手工調優),因為:
         . 每條SQL可能都是唯一的,這意味著你需要分別優化不同的SQL;
         . 系統可能是很複雜的系統,SQL程式碼非常非常多;
         . SQL調整可能是一件永遠看不到終點的任務,因為系統中的SQL workload可能經常在變化;

 

      SQL Tuning Advisor的出現減少了DBA的優化壓力,尤其是對經驗不夠豐富甚至完全不懂調優的人來說,

      使用STA一定要保證優化器是CBO模式下。個人感覺使用這樣的工具,僅適合全然不懂SQL的調優的人群或者DBA作參考,工具未必能解決好問題。

      SQL是業務表達的一種方式,工具不可能完全理解業務。SQL調優還是要結合用autotrace,10046,10053,display_cursor等這些優秀的工具做診斷。

      然後依據業務和所具備的oracle基礎的知識進行調優,個人認為這是最好的方法 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69950231/viewspace-2659180/,如需轉載,請註明出處,否則將追究法律責任。


相關文章

資料庫|SqlServer|SQL

sqlserver收縮資料庫、收縮資料檔案的操作

一些實際工作中的總結1、實際工作中收縮資料檔案的情況比收縮庫的情況多,不建議直接收縮資料庫2、收縮很容易出現等待,收縮會話對應sys.sysprocesses的欄位waitresource值類似為15
SQL

What is an SQL relation?

In SQL, a relation is a bag of objects that all share the same characteristics: a list of attributes
SqlServer|SQL

SQLSERVER2008釋出訂閱(踩坑)增量同步資料

前言在網上查了N多資料,居然沒有詳細寫如何配置增量同步的,我在自己配置的時候就遇到一些誤區和麻煩,現在自己總結一下,留著以後遇到用的時候可以檢視一、環境準備釋出伺服器:192.168.56.11作業系
Oracle

[20190930]oracle raw型別轉化number指令碼.txt

[20190930]oracle raw型別轉化number指令碼.txt--//寫一個簡單oracle raw轉化number指令碼,簡單說明:--//輸入必須是c1,02 或者 c102,不支援c
Oracle|PostgreSQL

Oracle vs PostgreSQL Develop(18) - Boolean

在Oracle和PG中都可以使用int型別模擬布林型別,但通過JDBC介面(JDBC驅動,Oracle為11.2.0.4,PG為9.3)獲取出來的值卻不一致,這一點需要注意。測試指令碼drop tab
SQL

INBOUND_CONNECT_TIMEOUT與SQLNET.INBOUND_CONNECT_TIMEOUT小結

INBOUND_CONNECT_TIMEOUT與SQLNET.INBOUND_CONNECT_TIMEOUT小結關於sqlnet.ora的引數SQLNET.INBOUND_CONNECT_TIMEOU
Oracle

[20191001]關於oracle number型別的一些疑惑.txt

[20191001]關於oracle number型別的一些疑惑.txt--//連結:http://www.itpub.net/thread-2120621-1-1.html討論.1.問題1:--//
SQL

Percona-Toolkit 之 pt-kill 低效SQL

[[email protected] tools]#vi ptkill_master.confuser=rootpassword=asd.123port=3306busy-time=5printkill/u01/soft/p
Oracle|SQL

Oracle中如何查詢未使用繫結變數的SQL語句?

Oracle中如何查詢未使用繫結變數的SQL語句?利用V$SQL檢視的FORCE_MATCHING_SIGNATURE欄位可以識別可能從繫結變數或CURSOR_SHARING獲益的SQL語句。如果SQ
Oracle

oracle for windows 靜默模式打補丁未指定響應檔案報錯OUI-67073

今天,一同事對oracle 11.2.0.3 for windows打補丁,未指定響應檔案,補丁應用報錯而退出。    報錯截圖如下:    根據報錯提示很清楚,opatch apply使用靜默模式的
SQL

低效sql語句執行緩慢引起的大量佔用伺服器的CPU問題處理 (優化心得)

1>2>3>4>5>刪除不良的執行計劃後執行時間仍然有150s,這實在是太慢了,繼續檢視原sql程式碼,發現父表的關聯條件放在了子查詢裡,這是應該避免的調整原sql程式碼
Oracle

[20190930]oracle number型別儲存轉化指令碼.txt

[20190930]oracle number型別儲存轉化指令碼.txt--//沒事寫了一個oracle number型別儲存轉化指令碼。本來想用C來編寫,感覺不好寫。--//還是採用自己擅長的bas
SQL

SQL Server Profiler(P)導致C盤空間不足

SQL Server Profiler(P)導致C盤空間不足 環境:DB:SQL Server 2012OS:Windows Server 2012 問題:同事反饋ERP測試系統無法登陸,提示無可用空
資料庫|Oracle

Oracle 19c 利用觸發器在資料庫啟動後自動開啟 PDB

以 sys 使用者建立如下觸發器,Oracle資料庫啟動完成後會自動開啟所有的 PDB。當然,可以自動指定開啟哪些 PDB。CREATE OR REPLACE TRIGGER OPEN_PDBSAFT
SQL

sql_plan_baseline

https://blog.csdn.net/u010719917/article/details/520026791、檢視錯誤的SQL 所執行 的執行計劃,確認是否需要使用基線控制執行計劃(前提,我們
Oracle

[20191003]oracle number型別儲存轉化指令碼.txt

[20191003]oracle number型別儲存轉化指令碼.txt--//完善指令碼,增加支援科學記數法。比如1e4之類的寫法。2.測試:$ cat test.txt012251234100-4
SqlServer|SQL

sqlserver索引重建和索引重組的區別和操作方法

https://docs.microsoft.com/zh-cn/sql/relational-databases/indexes/reorganize-and-rebuild-indexes?vie
Oracle

Oracle等待事件之enq: TM – contention

執行DML期間,為防止對與DML相關的物件進行修改,執行DML的程式必須對該表獲得TM鎖。P1 = name|modeP2 = object #P3 = table/partition SQL>
資料庫|Oracle

學習這篇Oracle資料庫檔案壞塊損壞的恢復方法,擴充你的知識面

一、Oracle資料庫系統簡介:ORACLE資料庫系統是美國ORACLE公司(甲骨文)提供的以分散式資料庫為核心的一組軟體產品,是目前最流行的客戶/伺服器(CLIENT/SERVER)或B/S體系結構