關於Oracle的提示詳解(1)
對於Oracle效能調優來說,在初始設計的時候,按照Oracle 推薦的OMF進行安裝配置之後是最優化的物理結構。
然而實際情況是這樣的:大部分的效能很差的資料庫,究其根本原因是為程式中的SQL程式碼很糟糕,很多程式設計師可能不清楚Oracle的體系結構,不知道Oracle對於一條sql是如何處理的,就會想當然的去寫,造成語句未使用繫結變數,執行計劃沒有使用索引,大部分都是全表掃描。有時候部門就需要有一位對Oracle內部體系結構很清楚地DBA對開發人員進行培訓,
有點兒悲劇的感覺。
好了,既然實際上是這樣的,我在此就介紹一些優化的技巧:
Oracle 大概知道會有這樣的情況,就給我們提供了一種優化的方案--提示
提示的基本語法是:
/*+ 提示名稱 */
像一種註釋,提示名稱就是具體的一些提示語法關鍵字 如:FULL
寫出來就像這個樣子: select /*+ FULL (table) */ column1,..... from table
如果提示語法不正確,那也不用擔心,除了沒有達到預期的結果,也不會有什麼影響,Oracle會忽略它。
一.使用FULL提示
語法: select /*+ FULL (table) */ column1,..... from table
其中的 table 是執行全表掃描的表名,如果使用了表的別名,那就必須使用別名,否則提示將不能工作。
示例:
select /*+ FULL(emp) */ *
from emp
where deptno= 1 ;
1.使用scott 使用者連線示例資料庫:
開啟sql 跟蹤, set autotrace on
2.不新增提示執行上述語句並且在 列deptno 有索引emp_deptno,輸出的執行計劃如下:執行的是索引範圍掃描。
3.執行上述示例新增 FULL 提示執行結果如下: 執行計劃執行的是全表掃描
提示:當一個表資料行不是很多的情況下,執行索引範圍掃描比全表掃描要慢一些。
但是以上的圖示去相反,全表掃描比索引範圍掃描要慢,這是因為沒有對錶進行收集統計資訊
4.執行表分析 analyze table emp compute statistics
在此執行上述SQL結果:
無FULL提示
有FULL提示:
對比以上結果可以看出,FULL提示對於優化某些小表是很有幫助的。
相關文章
- 1 關於 Oracle Data GuardOracle
- Mysql 關於event的詳解MySql
- 關於SSL裝置的詳解
- Windows 關於Robocopy的使用詳解Windows
- Mysql關於procedure、function的詳解MySqlFunction
- ORACLE的HINT詳解Oracle
- 關於Vue.use()詳解Vue
- 關於C++中物件與類的詳解及其作用詳解C++物件
- 關於oracle的Spool命令Oracle
- 關於oracle中的undoOracle
- 關於RestCloud iPaaS平臺的板塊詳解RESTCloud
- 關於WiFi協議的調製方式詳解WiFi協議
- Oracle SCN詳解Oracle
- oracle rowid詳解Oracle
- ORACLE -詳解SCNOracle
- 關於Oracle的BLOB和CLOBOracle
- Oracle中job的使用詳解Oracle
- 4.1 關於 Oracle RestartOracleREST
- Oracle練習詳解Oracle
- oracle oradebug使用詳解Oracle
- 關於oracle的空間查詢Oracle
- Oracle的表空間quota詳解Oracle
- 關於C++類的定義和物件的建立詳解C++物件
- [譯] 關於 Room 的 7 點專業提示OOM
- 有關oracle ebs中:Dialog的做法(1)Oracle
- ORACLE基礎之oracle鎖(oracle lock mode)詳解Oracle
- 4.2.1 關於配置Oracle RestartOracleREST
- oracle: default role 詳解(轉)Oracle
- 關於Redis哨兵機制,7張圖詳解!Redis
- 【ASK_ORACLE】關於Oracle索引分裂你需要知道的Oracle索引
- 關於常用的http請求頭以及響應頭詳解HTTP
- 關於轉儲Oracle索引資訊的相關命令Oracle索引
- JSP詳解-1JS
- 關於M1晶片版Mac安裝Photoshop後儲存psd時出現程式錯誤提示的解決方法晶片Mac
- 關於QQ郵箱登入提示一鍵登入解決方案
- ORACLE賬戶提示EXPIRED(GRACE)問題解決Oracle
- 基於sqli-labs Less-1的sql聯合注入詳解SQL
- 關於Oracle Database Vault介紹OracleDatabase
- 關於集合遍歷並刪除報錯詳解