SQL腳本存在TABLE ACCESS FULL行為


對於SQL的執行計划,一般盡量避免TABLE ACCESS FULL的出現,那怎樣去定位,系統里面哪些SQL腳本存在TABLE ACCESS FULL行為,對於9i及以后版本,使用以下語句即可
select *
  from v$sql_plan v
 where v.operation = 'TABLE ACCESS'
   and v.OPTIONS = 'FULL'
   and v.OBJECT_OWNER='MS';--指定用戶下
查詢得到SQL_ID,以及ADDRESS,HASH_VALUE,PLAN_HASH_VALUE,OBJECT_NAME后,就可以定位到具體的SQL語句了。
如:
select s.SQL_TEXT
  from v$sqlarea s
 where s.SQL_ID = '4dpd97jh2gzsd'
   and s.HASH_VALUE = '1613233933'
   and s.PLAN_HASH_VALUE = '3592287464';
或者
select s.SQL_TEXT from v$sqlarea s where s.ADDRESS = '00000000A65D2318';


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM