搜尋
首頁資料庫mysql教程Oracle获取执行计划的几种方法

为了获取缓存库中的执行计划,可以直接查询动态性能视图v$sql_plan和v$sql_plan_statistics_all等,但更方便的方法是以sql_id和子

1. 预估执行计划 - Explain Plan

Explain plan以SQL语句作为输入,得到这条SQL语句的执行计划,并将执行计划输出存储到计划表中。

首先,在你要执行的SQL语句前加explain plan for,此时将生成的执行计划存储到计划表中,语句如下:
 
explain plan for SQL语句
 
然后,在计划表中查询刚刚生成的执行计划,语句如下:
 
select * from table(dbms_xplan.display);

注意:Explain plan只生成执行计划,并不会真正执行SQL语句,因此产生的执行计划有可能不准,因为:

1)当前的环境可能和执行计划生成时的环境不同;
2)不会考虑绑定变量的数据类型;
3)不进行变量窥视。 

2. 查询内存中缓存的执行计划 (dbms_xplan.display_cursor)

如果你想获取正在执行的或刚执行结束的SQL语句真实的执行计划(即获取library cache中的执行计划),可以到动态性能视图里查询。方法如下:

1)获取SQL语句的游标

游标分为父游标和子游标,父游标由sql_id(或联合address和hash_value)字段表示,子游标由child_number字段表示。

如果SQL语句正在运行,可以从v$session中获得它的游标信息,如:
 select status, sql_id, sql_child_number from v$session where status='ACTIVE' and ....

如果知道SQL语句包含某些关键字,可以从v$sql视图中获得它的游标信息,如:
 select sql_id, child_number, sql_text from v$sql where sql_text like '%关键字%‘

2)获取库缓存中的执行计划
 
为了获取缓存库中的执行计划,可以直接查询动态性能视图v$sql_plan和v$sql_plan_statistics_all等,但更方便的方法是以sql_id和子游标为参数,执行如下语句:
 select * from table(dbms_xplan.display_cursor('sql_id',child_number));
 

3)获取前一次的执行计划:
 set serveroutput off
 select * from table(dbms_xplan.display_cursor(null,null,'ALLSTATS LAST'));

3. 查询历史执行计划(dbms_xplan.display_awr)

AWR会定时把动态性能视图中的执行计划保存到dba_hist_sql_plan视图中,如果你想要查看历史执行计划,可以采用如下方法查询:
 select * from table(dbms_xplan.display_awr('sql_id');

4. 在用sqlplus做SQL开发是(Autotrace)

set autotrace是sqlplus工具的一个功能,只能在通过sqlplus连接的session中使用,它非常适合在开发时测试SQL语句的性能,有以下几种参数可供选择:
 

SET AUTOTRACE OFF ---------------- 不显示执行计划和统计信息,这是缺省模式
 SET AUTOTRACE ON EXPLAIN ------ 只显示优化器执行计划
 SET AUTOTRACE ON STATISTICS -- 只显示统计信息
 SET AUTOTRACE ON ----------------- 执行计划和统计信息同时显示
 SET AUTOTRACE TRACEONLY ------ 不真正执行,,只显示预期的执行计划,同explain plan

5. 生成Trace文件查询详细的执行计划 (SQL_Trace, 10046)

SQL_TRACE作为初始化参数可以在实例级别启用,也可以只在会话级别启用,在实例级别启用SQL_TRACE会导致所有进程的活动被跟踪,包括后台进程及所有用户进程,这通常会导致比较严重的性能问题,所以在一般情况下,我们使用sql_trace跟踪当前进程,方法如下:

SQL>alter session set sql_trace=true;
 ...被跟踪的SQL语句...
 SQL>alter session set sql_trace=false;
 如果要跟踪其它进程,可以通过Oracle提供的系统包DBMS_SYSTEM. SET_SQL_TRACE_IN_SESSION来实现,例如:
 SQL> exec dbms_system.set_sql_trace_in_session(sid,serial#,true) --开始跟踪
 SQL> exec dbms_system.set_sql_trace_in_session(sid,serial#,false) --结束跟踪

生成trace文件后,再用tkprof 工具将sql trace 生成的跟踪文件转换成易读的格式,语法如下:
 tkprof inputfile outputfile
 
10046事件是SQL_TRACE的一个升级版,它也是追踪会话,生成Trace文件,只是它里面的内容更详细,

linux

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
C程序用于找到一个数的最大质因子C程序用于找到一个数的最大质因子Aug 27, 2023 am 10:09 AM

PrimeFactor−Innumbertheory,theprimefactorsofapositiveintegeraretheprimenumbersthatdividethatintegerexactly.Theprocessoffindingthesenumbersiscalledintegerfactorization,orprimefactorization.Example−Primefactorsof288are:288=2x2x2x2x2

全球数字虚拟币交易平台排行榜前十(2025权威排名)全球数字虚拟币交易平台排行榜前十(2025权威排名)Mar 06, 2025 pm 04:36 PM

2025年全球数字虚拟币交易平台竞争激烈,本文根据交易量、安全性、用户体验等指标,权威发布2025年全球十大数字虚拟币交易平台排行榜。OKX凭借强大的技术实力和全球化运营策略居首,Binance以高流动性和低费用紧随其后。Gate.io、Coinbase、Kraken等平台凭借各自优势稳居前列。榜单涵盖Huobi、KuCoin、Bitfinex、Crypto.com和Gemini等交易平台,各有特色,但投资需谨慎。选择平台需考虑安全性、流动性、费用、用户体验、币种选择及监管合规性等因素,理性投资

币圈十大交易所2025年最新 数字货币app排行榜前十币圈十大交易所2025年最新 数字货币app排行榜前十Feb 27, 2025 pm 06:33 PM

虚拟货币十大交易平台排行榜(2025年最新): 币安:全球龙头,高流动性,监管受关注。 OKX:庞大用户基数,支持多种币种,提供杠杆交易。 Gate.io:资深交易所,多种法币支付方式,提供多种交易对和投资产品。 Bitget:衍生品交易所,高流动性,低费用。 火币:老牌交易所,支持多种币种和交易对。 Coinbase:美国知名交易所,受监管严格。 Phemex等等。

十大数字货币交易平台 数字货币交易平台top10榜单最新十大数字货币交易平台 数字货币交易平台top10榜单最新Mar 17, 2025 pm 05:57 PM

十大数字货币交易平台:1. OKX,2. Binance,3. Gate.io,4. Huobi Global,5. Kraken,6. Coinbase,7. KuCoin,8. Bitfinex,9. Crypto.com,10. Gemini,这些交易所各具特色,用户可根据安全性、费用、币种选择、用户界面和客户支持等因素选择适合自己的平台。

数字货币app十大交易平台 炒币正规平台app推荐数字货币app十大交易平台 炒币正规平台app推荐Mar 07, 2025 pm 06:51 PM

本文推荐十个数字货币交易App:1. OKX;2. Binance;3. Gate.io;4. Huobi Global;5. Kraken;6. Coinbase;7. KuCoin;8. Crypto.com;9. Bitfinex;10. Poloniex。选择平台需考虑安全性、流动性、交易费用、币种选择、用户界面、客服支持及法规合规性等因素,谨慎评估风险,切勿盲目跟风。

靠谱的数字货币平台有哪些 十大正规数字货币交易平台2025靠谱的数字货币平台有哪些 十大正规数字货币交易平台2025Mar 17, 2025 pm 05:45 PM

靠谱的数字货币平台包括:1. OKX,2. Binance,3. Gate.io,4. Huobi Global,5. Kraken,6. Coinbase,7. KuCoin,8. Bitfinex,9. Crypto.com,10. Gemini,这些交易所各具特色,用户可根据安全性、费用、币种选择、用户界面和客户支持等因素选择适合自己的平台。

十大数字货币交易app排行榜top10推荐十大数字货币交易app排行榜top10推荐Feb 17, 2025 pm 03:18 PM

随着数字货币市场的繁荣,本文列出了十大数字货币交易 App 排行榜,以帮助投资者选择可靠且易用的平台。排行榜包括币安、Coinbase、Gemini、Kraken、FTX、Huobi、OKX、Bitfinex、Crypto.com 和 Gate.io。这些 App 提供了广泛的交易对、安全可靠的平台、低交易费用和高流动性等优势。投资者应根据安全、用户友好性、交易费用、流动性、支持的币种和客户服务等因素,选择最符合他们需求的 App。

十大数字货币app交易平台 top10虚拟货币app2025排行榜十大数字货币app交易平台 top10虚拟货币app2025排行榜Mar 13, 2025 pm 07:00 PM

十大虚拟币交易平台排名依次为:1. OKX;2. Binance;3. Gate.io;4. Huobi Global;5. Kraken;6. Coinbase;7. KuCoin;8. Crypto.com;9. Bitfinex;10. Gemini。 排名基于平台流动性、币种选择、安全性、用户体验、手续费及合规性等因素综合考量,但仅供参考,投资需谨慎,风险自担。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中