Oracle如何查看sql的真实执行计划
Jun 07, 2016 pm 05:34 PM平常我们用explan plan for,set autotrace,utlxplan等方式查看执行计划都是optimizer模拟生成的执行计划,并不完全符合oracle内部
知识普及:
1 平常我们用explan plan for,set autotrace,utlxplan等方式查看执行计划都是optimizer模拟生成的执行计划,并不完全符合Oracle内部对sql语句的执行路径。
2 v$sqlarea中放置的父游标,放置sql的sql_id和address
3 v$sql中对应v$sqlarea中的sql的子游标,address和child_number代表唯一的子游标
查询sql在数据库中实际的sql执行计划方法:
1 set autotrace on
如果语句返回的行很多,那么结果会非常庞大,,在sqlplus里边是一个困难的选择。
set autotrace traceonly --并不能每次显示正确的执行计划,造成对sql优化的误导。
2 查询v$sql_plan是真实执行路径,但阅读比较困难。
3 使用如下语句可以查询sql的真实执行路径,并且格式化执行路径输出
set linesize 400
set pagesize 60
SELECT * FROM TABLE (SELECT DBMS_XPLAN.DISPLAY_CURSOR('a8tumy29tf0za','0') from dual);
--第一个为sql_id
--第二个为child_number

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか?

人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか?
