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

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Reduzieren Sie die Verwendung des MySQL -Speichers im Docker

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung?

So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen

Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin)

Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung

Wie sichere ich mich MySQL gegen gemeinsame Schwachstellen (SQL-Injektion, Brute-Force-Angriffe)?

Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)?
