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';
相關文章
相關標籤/搜索