TOAD中查看SQL的执行计划
toad常用快捷键与配置
toad常⽤快捷键与配置F8 调出以前执⾏的sql命令F9 执⾏全部sqlCtrl+. 补全table_nameCtrl+t 补全table_name,或者显⽰字段alt+ 箭头上下看sql historyCtrl+Enter 直接执⾏当前sql(注意执⾏选中的SQL,到当前⿏标所在的位置?不选中⼀个很长的SQL,直接按住Ctrl Enter执⾏的话,执⾏结果中可能只是SQL中部分条件起作⽤时的执⾏结果!)Ctrl+Shift+F 格式化sql语句。
CTRL+E 执⾏计划在编译器Editor画⾯中,第⼆排⼯具栏第3个按钮:Execute as script、Execute in QSR、Execute in SQL*Plus(可以⽤来执⾏sql⽂件,内部脚本⽤双引号分隔)第4个按钮:Run explain plan for current statement(查看执⾏计划)后⾯还包括PLSQL的调试功能等功能Ctrl U 变⼤写Ctrl L 变⼩写Ctrl B 注释Ctrl Shift B 取消注释配置⾃动提⽰。
在选项中,设置delay pop-up值,系统默认1500,可以设置为300⼀下,单位为毫秒;Schema Browser->⽤上下⿏标查看数据库中所有表的数据(选中Data标签以默认查看表中数据)在打开的表结构画⾯中,上⽅⼯具栏,选择放⼤镜(View\Edit Query),可以复制表明和表中的所有字段,也可以去导出画⾯的DataSet标签内复制在打开的表结构画⾯中,下⽅⼯具栏,选择书本(Single Record View),可以纵向查看单条记录使⽤ oracle client设置windows环境变量PATH=D:\instantclient10_2LD_LIBRARY_PATH=D:\instantclient10_2ORACLE_HOME=D:\instantclient10_2SQL_PATH=D:\instantclient10_2TNS_ADMIN=D:\instantclient10_2sqlnet.ora 和 tnsnames.ora这两个⽂件可以从任何⼀个oracle数据库copy出来,放D:\instantclient10_2⽬录下。
查看SQL语句的执行计划
查看SQL语句的执行计划
在SQL Server中,可以通过以下方式查看SQL语句的执行计划:
1. 使用SQL Server Management Studio (SSMS):在查询窗口中输
入要执行的SQL语句,然后点击"查询"菜单中的"显示执行计划"选项,或
者使用快捷键Ctrl + M。
执行计划将以图形方式显示在另一个选项卡中。
2.使用SETSHOWPLAN_ALL语句:在查询窗口中输入要执行的SQL语句
之前,先输入SETSHOWPLAN_ALLON,然后再执行SQL语句。
这将返回一个
文本结果,其中包含SQL语句的执行计划。
3.使用SETSTATISTICSXML语句:在查询窗口中输入要执行的SQL语
句之前,先输入SETSTATISTICSXMLON,然后再执行SQL语句。
这将返回
一个XML结果,其中包含SQL语句的执行计划。
4. 使用DMV(动态管理视图):可以查询sys.dm_exec_query_stats
和sys.dm_exec_text_query_plan这两个DMV,从中获取SQL语句的执行
计划信息。
这种方法需要一些复杂的查询。
无论使用哪种方法,查看SQL语句的执行计划可以帮助优化查询性能,找出潜在的性能问题并作出相应的调整。
toad使用教程
一、toad功能综述在oracle 应用程序的开发过程中,访问数据库对象和编写sql程序是一件乏味且耗费时间的工作,对数据库进行日常管理也是需要很多sql脚本才能完成的。
quest software为此提供了高效的oracle应用开发工具-toad(tools of oracle application developers)。
在toad的新版本中,还加入了dba模块,可以帮助dba完成许多日常管理工作。
它最大的特点就是简单易用,访问速度快。
使用toad,我们可以通过一个图形化的用户界面快速访问数据库,完成复杂的sql和pl/sql代码编辑和测试工作。
toad由oracle开发专家专门为开发人员而设计,是一个功能强大、结构紧凑的专业化pl/sql开发环境。
toad 主要具有如下特点:模式浏览:模式浏览功能可以让我们快速访问数据字典,浏览数据库中的表、索引、存储过程。
toad 提供对数据库的快速访问,使用极为方便,用户界面简洁,结构安排合理。
当我们点击一个单独的数据库对象,toad立即显示此对象的详细信息。
例如,当我们点一个数据库的表,所有和此表相关的索引、约束、存储过程、sql语句以及和其他表的相互引用关系都在同一界面显示出来。
为了简化操作,用户可以在浏览窗口操作数据库对象。
sql 编辑器:sql 编辑器的主要功能是编辑、运行和调整sql语句。
toad 的高级编辑窗口包括众多的特性来提高开发人员编写sql语句的产品化程度。
例如,简单地生成代码模板,在编写sql前自动发现包的内容和列的名字等等。
sql 编辑器包括一个编辑窗口和运行结果窗口,允许开发人员在编辑的过程中测试运行结果。
sql编辑器中不仅包括标准的编辑命令,也包括一些增强的功能,如快速查询表中的字段、将sql语句的内容格式化等等。
这个窗口可以处理大到4gb 的内容,对大的开发项目来说非常有用。
便捷的书签可以让开发人员非常容易地找到相关位置。
sql执行计划怎么看
sql执行计划怎么看对于理解和分析SQL查询的性能,SQL执行计划是一个非常重要的工具。
SQL执行计划提供了关于查询如何执行的详细信息,包括优化器选择使用的算法、访问方法和数据流程等。
通过查看执行计划,可以确定查询是否具有高效的性能,以及是否需要对查询或数据库结构进行优化。
要查看SQL执行计划,可以使用DBMS的命令行界面或图形化界面工具。
下面是一些常见的方法来获取SQL执行计划的步骤。
1. 使用命令行工具:a. 启动命令行界面,例如SQL Server Management Studio (SSMS) 或 MySQL的命令行客户端。
b. 连接到数据库,并选择要执行查询的数据库。
c. 输入要执行的SQL查询,并使用"EXPLAIN"关键字(对于某些数据库,可能使用"EXPLAIN PLAN")在查询之前。
d. 执行查询,数据库服务器将返回查询的执行计划。
2. 使用图形化界面工具:a. 打开SQL查询工具,例如SSMS、Navicat、Toad等。
b. 连接到数据库,并选择要执行查询的数据库。
c. 输入要执行的SQL查询。
d. 在工具的菜单栏或工具栏中找到和执行计划相关的功能,例如"Show Execution Plan"或类似的选项。
e. 执行查询,工具将显示查询的执行计划。
了解如何获取SQL执行计划后,下面是执行计划的一些常见元素,以及如何解读它们:1. 查询计划:- 选择了哪种类型的查询计划,例如表扫描、索引扫描、索引查找等。
- 查询操作的顺序和组织方式。
2. 数据访问方法:- 使用哪种数据访问方法,例如全表扫描、索引扫描、索引查找等。
- 访问方法的成本和效率。
3. 连接方法:- 如果查询涉及多个表,连接的顺序和方法是如何选择的。
- 连接方法的成本和效率。
4. 过滤和条件:- 查询中使用的过滤条件,以及它们是如何被执行的。
- 过滤条件的成本和效率。
Toad for Oracle v11 SQL跟踪器功能指南
Toad for Oracle SQL Tracker功能指南
Quest Software
2012
1.什么是SQL Tracker
注:感谢ITPUB朋友的建议。
我会逐步将Toad的一些DBA功能点写出来给大家参考。
DBA经常需要跟踪数据库会话以判断故障,或者获取某些工具在后台执行的SQL以供自己所用。
SQL Tracker是Toad for Oracle的一个可以独立启动的附件工具,用于监控、收集客户端机器访问数据库的应用所发出的SQL语句。
在旧版本中称作SQL Monitoring。
此功能使用非常简单,对高级DBA和初学者都很有帮助。
2.SQL Tracker的使用
1)启动Toad。
进入菜单“Database|Monitor|SQL Tracker”,显示下图:
SQL Tracker自动捕获所有本机器所有连接到数据库的会话。
按F5可以刷新。
2)高亮你想监控的会话,并点击绿色三角按钮,开始监控。
如下图,在Toad中执行一
个功能(Schema Browser中选择一张表),则:
在下方的窗口中列出了Toad为执行这个功能在后台执行的SQL。
3)点击红色方框按钮停止监控。
你可以将结果保存到文件中。
TOAD使用笔记
TOAD使用笔记1、把鼠标停在sql所在行,然后ctrl+Enter直接执行当前sql。
2、解决Toad对中文显示乱码问题(如果数据库所在主机的NLS_LANG是AMERICAN_AMERICA.WE8ISO8859P1):系统环境变量加 NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P13、toad中自动提示功能,就像plsql developer那样:输入表名前几个字母,然后用Ctrl + .就可以弹出,如你输入select * from emp t where t. 这时候停顿一下,会弹出emp的字段来供你选择4、如何支持代码自动更正,如输入ndf,自动替换成NO_DATA_FOUND,输入sf自动替换成select * from:点开菜单edit->editer_options->auto_replace中,自己去设定。
可以设置任何你想自动替换的单词5、toad如何实现多线程,像plsql developer那样可以取消当前的操作:安装的时候有选项设置,如果未设置进入view-options-oracle-transactions,把第一个选项选上。
6、在TOAD的SQL Editor中修改查询的数据:selectrowid,b.* from acc_bill b 就可以修改数据了......7、使用Object Palette吧,很棒:在VIEW——Object Palette找到入口。
点击后在SQL Editor窗口右侧产生一个窗口,里面可以根据schema选择对象类型,比如table,出现的表名双击后就出现在SQL编辑器里了,下面还有字段名,是不是很方便啊。
8、关于TOAD启动的一些问题:有的时候安装完成后突然发现无法同时打开两个TOAD,其实这是一个option控制的。
进入option界面,选择General,右侧第四个“Allow multiple copies ...”,那个就是选项了,打勾后重启程序就可以了。
sql的执行计划
sql的执行计划SQL的执行计划。
SQL的执行计划是数据库系统中非常重要的概念,它决定了SQL查询语句在数据库中的执行方式和效率。
在进行SQL查询优化时,了解和分析SQL的执行计划是至关重要的。
本文将介绍SQL的执行计划是什么,如何获取执行计划,以及如何分析执行计划来进行SQL查询优化。
执行计划是指数据库系统在执行SQL查询语句时生成的一种执行策略。
它告诉我们数据库系统将如何获取数据,以及在获取数据的过程中使用了哪些索引、连接方式、排序方式等。
通过分析执行计划,我们可以了解到SQL查询语句的执行效率,从而进行优化。
获取SQL执行计划的方法有多种,其中最常用的方法是使用数据库系统提供的explain命令或者类似的工具。
通过explain命令,我们可以获取到数据库系统生成的执行计划,并进行分析。
在MySQL中,可以使用"explain + SQL查询语句"来获取执行计划;在Oracle中,可以使用"explain plan for + SQL查询语句"来获取执行计划。
一旦获取了执行计划,我们就可以开始分析了。
执行计划通常以树状结构的方式展现,其中包括了访问方法、访问类型、索引使用情况、行数估算等信息。
通过分析执行计划,我们可以找出SQL 查询语句的瓶颈所在,从而进行优化。
比如,如果执行计划中出现了全表扫描,那么可能需要考虑增加索引来提高查询效率;如果执行计划中出现了排序操作,那么可能需要考虑优化排序算法等。
在分析执行计划时,需要注意以下几点,首先,要关注访问方法和访问类型,这两个信息可以告诉我们数据库系统是如何获取数据的;其次,要注意索引使用情况,索引的使用情况直接影响了查询的效率;最后,要注意行数估算,行数估算的准确性对于执行计划的分析至关重要。
除了使用explain命令外,还可以通过一些可视化的工具来获取和分析执行计划。
这些工具可以以图形化的方式展现执行计划,更直观地帮助我们理解和分析执行计划。
ORACLE数据库查看执行计划
ORACLE数据库查看执⾏计划基于ORACLE的应⽤系统很多性能问题,是由应⽤系统SQL性能低劣引起的,所以,SQL的性能优化很重要,分析与优化SQL的性能我们⼀般通过查看该SQL的执⾏计划,本⽂就如何看懂执⾏计划,以及如何通过分析执⾏计划对SQL进⾏优化做相应说明。
⼀、什么是执⾏计划(explain plan)执⾏计划:⼀条查询语句在ORACLE中的执⾏过程或访问路径的描述。
⼆、如何查看执⾏计划1: 在PL/SQL下按F5查看执⾏计划。
第三⽅⼯具toad等。
很多⼈以为PL/SQL的执⾏计划只能看到基数、优化器、耗费等基本信息,其实这个可以在PL/SQL⼯具⾥⾯设置的。
可以看到很多其它信息,如下所⽰2: 在SQL*PLUS(PL/SQL的命令窗⼝和SQL窗⼝均可)下执⾏下⾯步骤SQL>EXPLAIN PLAN FORSELECT*FROM SCOTT.EMP; --要解析的SQL脚本SQL>SELECT*FROM TABLE(DBMS_XPLAN.DISPLAY);3: 在SQL*PLUS下(有些命令在PL/SQL下⽆效)执⾏如下命令:SQL>SET TIMING ON --控制显⽰执⾏时间统计数据SQL>SET AUTOTRACE ON EXPLAIN --这样设置包含执⾏计划、脚本数据输出,没有统计信息SQL>执⾏需要查看执⾏计划的SQL语句SQL>SET AUTOTRACE OFF --不⽣成AUTOTRACE报告,这是缺省模式SQL>SET AUTOTRACE ON --这样设置包含执⾏计划、统计信息、以及脚本数据输出SQL>执⾏需要查看执⾏计划的SQL语句SQL>SET AUTOTRACE OFFSQL>SET AUTOTRACE TRACEONLY --这样设置会有执⾏计划、统计信息,不会有脚本数据输出SQL>执⾏需要查看执⾏计划的SQL语句SQL>SET AUTOTRACE TRACEONLY STAT --这样设置只包含有统计信息SQL>执⾏需要查看执⾏计划的SQL语句SET AUTOT[RACE] {ON | OFF | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]参考⽂档:SQLPlus User’s Guide and Reference Release 11.1注意:PL/SQL Developer ⼯具并不完全⽀持所有的SQL*Plus命令,像SET AUTOTRACE ON 就如此,在PL/SQL Developer⼯具下执⾏此命令会报错SQL> SET AUTOTRACE ON;Cannot SET AUTOTRACE4:SQL_TRACE可以作为参数在全局启⽤,也可以通过命令形式在具体SESSION启⽤4.1 在全局启⽤,在参数⽂件(pfile/spfile)中指定SQL_TRACE =true,在全局启⽤SQL_TRACE时会导致所有进程活动被跟踪,包括后台进程以及⽤户进程,通常会导致⽐较严重的性能问题,所以在⽣产环境要谨慎使⽤。
oracle执行计划怎么看
oracle执行计划怎么看Oracle执行计划怎么看。
Oracle数据库系统是当今世界上应用最广泛的关系型数据库管理系统之一,它的执行计划对于数据库性能的优化和调优起着至关重要的作用。
执行计划是Oracle数据库在执行SQL语句时生成的一种执行策略,它告诉我们数据库是如何执行SQL语句的,通过分析执行计划,我们可以了解SQL语句的执行效率,找到优化的空间,提高数据库的性能。
本文将介绍如何查看Oracle执行计划,以及如何解读执行计划,帮助大家更好地理解和优化SQL语句的执行效率。
一、查看执行计划的方法。
1. 使用EXPLAIN PLAN语句。
在Oracle中,我们可以使用EXPLAIN PLAN语句来获取SQL语句的执行计划。
具体的语法如下:EXPLAIN PLAN FOR。
SQL语句;然后可以使用如下语句来查看执行计划:SELECT FROM TABLE(DBMS_XPLAN.DISPLAY);2. 使用AUTOTRACE。
在SQLPlus或者SQL Developer中,我们可以使用AUTOTRACE功能来查看SQL语句的执行计划。
在SQLPlus中,可以使用如下语句开启AUTOTRACE功能:SET AUTOTRACE ON;然后执行需要查看执行计划的SQL语句即可。
3. 使用SQL Developer。
对于Oracle数据库开发人员来说,SQL Developer是一个非常常用的工具,它提供了直观的图形界面来查看SQL语句的执行计划。
在SQL Developer中,执行SQL语句后,可以通过右键菜单选择“Explain Plan”来查看执行计划。
二、执行计划的解读。
1. 表的访问方式。
在执行计划中,我们可以看到表的访问方式,包括全表扫描、索引扫描、唯一索引扫描等。
全表扫描意味着数据库将会扫描整张表,而索引扫描则表示数据库将会利用索引来快速定位数据,不同的访问方式对于SQL语句的性能影响很大。
Toad_使用简明手册
一、Toad功能综述在Oracle应用程序的开发过程中,访问数据库对象和编写SQL程序是一件乏味且耗费时间的工作,对数据库进行日常管理也是需要很多SQL脚本才能完成的。
Quest Software 为此提供了高效的Oracle应用开发工具-Toad(Tools of Oracle Application Developers)。
在Toad的新版本中,还加入了DBA模块,可以帮助DBA完成许多日常管理工作。
它最大的特点就是简单易用,访问速度快。
使用Toad,我们可以通过一个图形化的用户界面快速访问数据库,完成复杂的SQL和PL/SQL代码编辑和测试工作。
Toad由Oracle开发专家专门为开发人员而设计,是一个功能强大、结构紧凑的专业化PL/SQL开发环境。
Toad 主要具有如下特点:模式浏览:模式浏览功能可以让我们快速访问数据字典,浏览数据库中的表、索引、存储过程。
Toad 提供对数据库的快速访问,使用极为方便,用户界面简洁,结构安排合理。
当我们点击一个单独的数据库对象,Toad立即显示此对象的详细信息。
例如,当我们点一个数据库的表,所有和此表相关的索引、约束、存储过程、SQL语句以及和其他表的相互引用关系都在同一界面显示出来。
为了简化操作,用户可以在浏览窗口操作数据库对象。
SQL 编辑器:SQL 编辑器的主要功能是编辑、运行和调整SQL语句。
TOAD 的高级编辑窗口包括众多的特性来提高开发人员编写SQL语句的产品化程度。
例如,简单地生成代码模板,在编写SQL 前自动发现包的内容和列的名字等等。
SQL编辑器包括一个编辑窗口和运行结果窗口,允许开发人员在编辑的过程中测试运行结果。
SQL编辑器中不仅包括标准的编辑命令,也包括一些增强的功能,如快速查询表中的字段、将SQL语句的内容格式化等等。
这个窗口可以处理大到4GB 的内容,对大的开发项目来说非常有用。
便捷的书签可以让开发人员非常容易地找到相关位置。
Toad补充与培训常用菜单
Toad补充与培训常⽤菜单Toad 常⽤菜单新版本 toad 软件中, ⽐较有⽤的菜单 (toad10.6 版本)下边菜单, 在⽇常⼯作中出现过的, 显⽰为粉⾊, 蓝⾊表⽰次⼀级的重要session 菜单new session, end session, session Information, DBMS flashback Session Information: 显⽰当前session的⽤户的情况, ⽐如权限, 授权等Database 菜单 (很多功能都是重复的) administrator: 审计, 参数, redo, tablespace , prameters 等, 这⾥关于 redo 的内容⼗分好⽤. monitor: 监控可以与statspack 联系使⽤. ~ database browser : database 的全部内容, 包括参数, 表空间, 数据⽂件等 ~ database monitor : 动态监视, 包括 logical I/O, session, sga, physical IO, call rates, shared pool, waitevent 等等. (实时, 可能不⽤)~ database probe : 也是⽤来实时监控系统运⾏情况 (实时,不⽤)注: database monitor, database probe 都是实时监控系统运⾏, 本⾝也很耗费资源, 个⼈感觉还是⽤快照的⽅式, 然后⽣成report, 分析report ⽐较好⼀定, 毕竟谁也不能在pc前⼀动不动的实时监测. 就算是临时发现了问题, 也可以⽤快速的两次快照, 找到问题的原因. ~ server statistics: 数据库运⾏的统计信息, waits, latches, sessions 等等~ Index Monitoring : 监控索引的使⽤情况 ~ session browser : 可以⽤来 kill session, 另外还有针对 session 的 wait event 等. ~ SGA Trace : 针对 SGA 的使⽤情况, 详细列出了所有的 sql list.~ statspack Browser : statspack 的信息浏览 ~ SQL Tracker : 打开这个, 你在toad中的所有操作, 都会有对应的SQL语句被输出.~ top session finder : 最耗费资源的 session diagnose:~ Alert log viewer: 查看 alert file ⽇志~ CodeXpert : 看来只针对 pl/sql, 加载进来⼀个对象(procedure, function, package, trigger, view), 进⾏优化(⾃动).~ Extents : 可以看到每个对象(例如 table)的存储情况.~ DB Health Check: DB健康检查, 默认是所有项⽬都要运⾏, 运⾏需要很多时间.~ Identify Space Deficits: 查看⾚字的存储空间.~ Log Miner : 可以查看到⽇志⽂件中, redo log file 的具体 SQL 语句.~ Log switch Frequency Map: 可以查看发⽣ Log switch 的时间点, 根据这个时间间隔判断 redo log file ⼤⼩是否合适 (如果redo log file ⼤⼩不合适, 因为redo log 是循环⼯作, 很有可能发⽣等待)~ Tablespace Map: 可以看到每个 block 存储哪些内容. optimize: ~ analyze all objects : 类似 SYS.DBMS_STATS.GATHER_TABLE_STATS 的作⽤.~ Estimate Index Size : 估计索引所占存储空间⼤⼩.~ Estimate Table Size : 估计table所占存储空间⼤⼩. ~ Explain plan : 执⾏计划, ⼀般是先选择⼀个SQL语句, 然后点⼯具栏上的⼩救护车(其实就是这项), 就可以只执⾏plan. ~ Optimize Current SQL: 输⼊⼀个SQL语句, 然后运⾏, 会出现 Explain Plan 和 Execution Statistics.~ Pinned Code : 可以查看共享池 shared pool 中的对象(主要是 procedure, function, package, sequence). 貌似⽤处不⼤~ Rebuild Multiple Objects : 重建对象, ⽐如重建索引, 重建表等. ~ Rebulid table : 重建表, 很详细的设置补充knowledge xpert for pl/sql (有专题, 例如 best practice)CodeXpert (在pl/sql编辑版的下半部分) 可以对pl/sql语句进⾏有效的优化提⽰培训1. 系统监控⽤户设置做系统级的监控只能⽤ sys 和 system ⽤户, 在 toad 中使⽤ sys 要将中间部分的 sysdba, ⽤system⽤户, 中间部分选择 normal. sys ⽤户只能⽤来做管理, system本质上是⼀个普通⽤户, 被赋予了管理权限.2. 创建新的连接⽅式在 toad 登陆接界⾯, 点中下部的 TNSNames Editor 按钮, 在弹出的窗⼝的上边⼯具栏找到 Add Service按钮, 根据提⽰, 添加新的连接注: 虽然⼿动在 tnsnames.ora中添加也是可以的, 但是⽤这种⽅式添加更加稳妥, 添加完后, 你会看到添加后的代码.3. 使⽤ toad 紧急恢复数据(闪回)⽤例: 在10分钟前(注意这个时间, 因为闪回技术主要依赖于在undo表空间⾥的数据镜像, undo表空间⾥的数据如果想不被覆盖, 是有⼀个时间限制的, 有个参数, ⼀般是15分钟, 所以这个⽤例使⽤的是10分钟前, 如果是1年前, 那么你还想闪回么?) 某操作员不⼩⼼对表t的某列做了修改,现在如何恢复10分钟前的数据解答:如果未提交, 则直接 rollback, 如果已经提交了, 则按下⾯步骤进⾏恢复(1) create table t_temp as select * from t as of timestamp sysdate – 1/144; -- 创建⼀个临时表, 保存了包含10分钟前被修改前的数据(2) select * from t-1/144; -- 这个没看出来有什么⽤, 个⼈感觉应该是 select * from t_temp 确认是否包括需要返回的数据(3) merge into t as t using t_temp as tt on (t.primarykey = tt.primarykey) when matched then update set = 4. Excel ⽂件导出Excel File 与 Excel Instance 不同, ⽤ Excel File 导出时, 不同的查询结果都导出到不同的Excel⽂件中, ⽽ Excel Instance 导出时, 不同查询结果会导出到同⼀个 Excel 中的不同页签.若导出的数据要导⼊到不同类型的数据库, 则需要再下拉框中选中 Insert Statement, (在想选择excel的地⽅), 这⾥注意, 如下图:5. 使⽤ toad 监控会话实时情况查看最耗⽤资源的session ( database->monitor->Top Session Finder 路径可能不同, 不过 Top Session Finder 找这个就可以了 ), 点执⾏(播放按钮)单击饼状图, 会出现session信息, 这些信息⾥⽐较重要的是( sid, oracle user, os user, machine )根据 sid, 在 Editor 窗⼝中输⼊: select * from v$session where sid = ‘3232’ 执⾏, ( 这个sid就是刚刚查出来的那个sid), 通过这⾥, 可以查看这个session是什么时间登陆的, 如果登陆了很久, 那很可能是死进程, 这⾥也可以查到 process(进程号), ps-ef|grep 1232 查看该进程6. 使⽤ toad 监控索引database->monitor->index monitoring(路径可能不⼀样)补充: 索引的特点是, ⽅便数据查询, 不⽅便数据更新, 因此, 索引不能随便建.经验: ⼀个索引若三个⽉没有⽤到, 就可以删除.这⾥的监控索引, 主要是看索引是否被使⽤.7. 使⽤ toad 查看sql执⾏计划将要执⾏的sql粘贴到 sql editor中, 然后点⼯具栏中的⼩救护车图标, 注意: 不⽤执⾏ sql, 只需要执⾏计划.执⾏计划中的 table access Full 要关注 ( 全表扫描 )cost 值越⼤表⽰耗⽤资源越多还要关注最上层的 Cost 值, 在这⾥有个经验, 以 10000 为界限, 超过 10000 就要予以关注oracle规则是: 当查询出的数据占记录数的 60% 的时候就不会⾛索引.8. 使⽤ toad 查看各个对象在 schema browser 中查看.表空间, 应该关注的是表空间的使⽤率, 这⾥也有⼀个经验值, 当表空间超过 80% 的时候就应该予以关注.9. 使⽤ toad 数据库健康检查database->diagnose->DB Health Check( 路径可能不对 )10. 使⽤ toad 对⽐表结构database->compare->schemas ( 路径可能不对 )这个可能很有⽤, ⽐如你想重新建⽴⼀个数据库⽽使⽤以前的数据库时, 可以使⽤这个功能将原数据库的结构导出来, 再⽤exp之类的将数据导⼊.另外, 可以在页签中使⽤同步脚本, 点开各个对象后, 可以看到详细脚本11. toad 秘密如何知道 toad 在执⾏某项操作时, 执⾏了哪些 sql 语句(1) 打开相应⼯具也可以⽤以下⽅法打开⼯具:(2) 选中 toad(3) 执⾏某项操作在上图的⼯具中, 就会显⽰刚刚执⾏的操作的后台的sql语句。
Oracle查看执行计划的几种方法
Oracle查看执行计划的几种方法[object Object]在Oracle数据库中,有多种方法可以查看SQL查询语句的执行计划。
执行计划是指Oracle数据库在执行SQL查询语句时所采取的操作步骤和执行顺序。
以下是几种常用的查看执行计划的方法:1. 使用EXPLAIN PLAN语句:EXPLAIN PLAN是Oracle数据库提供的一个工具,可以用来查看SQL查询语句的执行计划。
使用EXPLAIN PLAN语句需要先执行SET AUTOTRACE ON语句,然后执行要查看执行计划的SQL查询语句。
执行计划将以文本的形式输出到屏幕上。
2. 使用AUTOTRACE功能:AUTOTRACE是Oracle数据库提供的一个功能,可以在执行SQL查询语句时自动显示执行计划和统计信息。
可以使用以下命令启用AUTOTRACE功能:````SETAUTOTRACEON;```然后执行要查看执行计划的SQL查询语句。
执行计划将以文本的形式输出到屏幕上。
3. 使用DBMS_XPLAN包:DBMS_XPLAN是Oracle数据库提供的一个包,可以用来查看SQL查询语句的执行计划。
使用DBMS_XPLAN包需要先执行SET AUTOTRACE OFF语句,然后执行要查看执行计划的SQL查询语句。
执行计划将以表格的形式输出到屏幕上。
````SETAUTOTRACEOFF;```````SELECT*FROMTABLE(DBMS_XPLAN.DISPLAY);```4. 使用V$SQL_PLAN视图:V$SQL_PLAN是Oracle数据库中的一个视图,可以用来查看SQL查询语句的执行计划。
可以使用以下命令查询V$SQL_PLAN视图:````SELECT * FROM V$SQL_PLAN WHERE SQL_ID = 'your_sql_id';```其中,'your_sql_id'是要查看执行计划的SQL查询语句的SQL ID。
sql的执行计划
sql的执行计划SQL执行计划是一门涉及数据库性能优化的技术,指的是在使用SQL句时,各DBMS统根据所提供的SQL语句,系统通过分析、比较和搜索,找出最优的执行计划,来使SQL语句能够有效地执行。
此外,SQL执行计划也是SQL句优化的重要核心内容之一。
在SQL句执行前,DBMS先会将SQL语句编译,来产生可以为SQL 句执行提供基础的数据结构。
编译完成后,DBMS 会根据编译后的SQL 语句,生成一系列可供 SQL句执行的执行计划。
而执行计划作为计算机指令,有许多节点,每一节点都会描述一个特定的操作类型,比如索引搜索、表连接操作等,而不同的操作类型,其操作的顺序也可能不同。
因此,对于复杂的SQL语句,其执行计划中会有很多不同的节点,其中的每一个节点,都可能会影响到SQL句的执行效率。
要想提高SQL句的执行效率,SQL句的执行计划是不可或缺的一部分, SQL句的执行计划可以帮助开发人员清楚地了解每个SQL句的执行情况,从而做出合理的优化计划。
SQL句的执行计划也可以通过一些工具来监控,例如SQL句执行计划分析器,用于帮助开发人员更好地分析SQL行过程中出现的问题,以及在SQL语句执行过程中出现的数据库性能问题。
此外,SQL句的执行计划也可以通过一些优化建议,来帮助开发人员了解SQL句的执行状况,从而进行合理的优化。
此外,SQL句的执行计划也可以帮助开发人员查看SQL语句的执行顺序,以便更好地进行性能优化。
另外,SQL句的执行计划还可以帮助开发人员查看每条SQL句的运行时间,以便可以更好地检查SQL 句的执行效率,提高SQL句的性能。
总之,SQL执行计划是一门涉及数据库性能优化的核心技术,DBMS 统会根据提供的SQL语句,生成一系列可供 SQL句执行的执行计划,通过工具我们可以监控该执行计划,查看 SQL句执行中出现的问题,从而调整SQL句,使其有效地执行,提高数据库性能。
Oracle中查看已执行sql的执行计划
Oracle中查看已执行sql的执行计划上一篇/ 下一篇 2008-09-12 10:54:07 / 个人分类:原创笔记查看( 771 ) / 评论( 8 ) / 评分( 15 / 0 )有时候我们可能会希望查看一条已经执行过的sql的执行计划,常用的方式有两种:a,set autotrace后再重新执行一遍,不过重新执行可能会浪费时间,而且有些语句也不允许(例如修改操作的语句),或者查询v$sql_plan视图,但v$视图的可读性又不是那么好,这里提供一个新方式,通过dbms_xplan.display_cursor 来获取执行过的sql的执行计划。
首先看看该函数的语法:DBMS_XPLAN.DISPLAY_CURSOR(sql_id IN VARCHAR2 DEFAULT NULL,child_number IN NUMBER DEFAULT NULL,format IN VARCHAR2 DEFAULT 'TYPICAL');由上可知,我们至少需要找到执行过sql的sql_id,该参数可以从v$sql视图中找到。
下面,举个例子吧,执行一个简单查询:SQL> select count(0) from cat_product cp,cat_drug cd where cp.medical_id=cd.id;COUNT(0)----------118908如果我们想获取该语句的实际执行计划,通过下列步骤:1、查询v$sql视图,找到该语句的sql_id(注意哟,必须要确保你要查询的sql语句还在shared pool):SQL> select sql_id from v$sql where sql_text=2 'select count(0) from cat_product cp,cat_drug cd where cp.medical_id=cd.id';SQL_ID-------------c9cxqvr3q4tjd2、调用dbms_xplan包,查看该语句执行时的实现执行计划:SQL> select * from table(dbms_xplan.display_cursor('c9cxqvr3q4tjd'));PLAN_TABLE_OUTPUT------------------------------------------------------------------------------------------------------------------------------------------------------SQL_ID c9cxqvr3q4tjd, child number 0-------------------------------------select count(0) from cat_product cp,cat_drug cd where cp.medical_id=cd.idPlan hash value: 2559475106-----------------------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |-----------------------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | | | | 750 (100)| || 1 | SORT AGGREGATE | | 1 | 50 | | | ||* 2 | HASH JOIN | | 118K| 5804K| 4096K| 750 (1)| 00:00:11 || 3 | INDEX FAST FULL SCAN| PK_CAT_DRUG | 112K| 2758K| | 186 (1)|00:00:03 || 4 | INDEX FAST FULL SCAN| TU_CAT_PRODUCT_MED_CHECK| 118K| 2902K| | 212 (1)| 00:00:03 |-----------------------------------------------------------------------------------------------------------Predicate Information (identified by operation id):---------------------------------------------------2 - access("CP"."MEDICAL_ID"="CD"."ID")事实上dbms_xplan.display_cursor也非常灵活,如果执行的统计信息也被收集的话,还可以显示出每一步实际的花费时间等信息,例如:SQL> select /*+gather_plan_statistics*/ count(0) from cat_product cp,cat_drug cd wherecp.medical_id=cd.id;COUNT(0)----------118908SQL> select sql_id from v$sql where sql_text=2 'select /*+gather_plan_statistics*/ count(0) from cat_product cp,cat_drug cd wherecp.medical_id=cd.id';SQL_ID-------------91w1ug6vc9pxhSQL> select * from table(dbms_xplan.display_cursor('91w1ug6vc9pxh',null,'all iostats last'));PLAN_TABLE_OUTPUT------------------------------------------------------------------------------------------------------------------------------------------------------SQL_ID 91w1ug6vc9pxh, child number 0-------------------------------------select /*+gather_plan_statistics*/ count(0) from cat_product cp,cat_drug cd where cp.medical_id=cd.id Plan hash value: 2559475106-----------------------------------------------------------------------------------------------------------------------------------------------------| Id | Operation | Name | Starts | E-Rows |E-Bytes|E-Temp | Cost (%CPU)|E-Time | A-Rows | A-Time | Buffers |-----------------------------------------------------------------------------------------------------------------------------------------------------| 1 | SORT AGGREGATE | | 1 | 1 | 50 | | | | 1|00:00:00.18 | 595 ||* 2 | HASH JOIN | | 1 | 118K| 5804K| 4096K| 750 (1)| 00:00:11| 118K|00:00:00.33 | 595 || 3 | INDEX FAST FULL SCAN| PK_CAT_DRUG | 1 | 112K| 2758K| | 186 (1)| 00:00:03 | 112K|00:00:00.01 | 278 || 4 | INDEX FAST FULL SCAN| TU_CAT_PRODUCT_MED_CHECK | 1| 118K| 2902K| | 212 (1)| 00:00:03 | 118K|00:00:00.01 | 317 |-----------------------------------------------------------------------------------------------------------------------------------------------------Query Block Name / Object Alias (identified by operation id): -------------------------------------------------------------1 - SEL$13 - SEL$1 /CD@SEL$14 - SEL$1 /CP@SEL$1Predicate Information (identified by operation id):---------------------------------------------------2 - access("CP"."MEDICAL_ID"="CD"."ID")Column Projection Information (identified by operation id): -----------------------------------------------------------1 - (#keys=0) COUNT(*)[22]2 - (#keys=1)3 - "CD"."ID"[CHARACTER,24]4 - "CP"."MEDICAL_ID"[CHARACTER,24]35 rows selected.。
Oracle查看SQL执行计划的方式
Oracle查看SQL执⾏计划的⽅式Oracle查看SQL执⾏计划的⽅式获取Oracle sql执⾏计划并查看执⾏计划,是掌握和判断数据库性能的基本技巧。
下⾯案例介绍了多种查看sql执⾏计划的⽅式:基本有以下⼏种⽅式:1、通过sql_trace初始化参数2、通过Autotrace3、通过explain plan4、通过dbms_xplan.display_cursor5、通过dbms_xplan.display_awr6、通过10046事件1、通过explain plan ⼯具12:24:00 SCOTT@ prod>explain plan for12:24:06 2 select empno,ename,sal,deptno from emp where empno=7788;Explained.Elapsed: 00:00:00.2212:24:16 SCOTT@ prod>select * from table(dbms_xplan.display);PLAN_TABLE_OUTPUT------------------------------------------------------------------------------------------------------Plan hash value: 2949544139--------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |--------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 46 | 2 (0)| 00:00:01 || 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 46 | 2 (0)| 00:00:01 ||* 2 | INDEX UNIQUE SCAN | PK_EMP | 1 | | 1 (0)| 00:00:01 |--------------------------------------------------------------------------------------Predicate Information (identified by operation id):---------------------------------------------------2 - access("EMPNO"=7788)14 rows selected.Elapsed: 00:00:01.142、通过DBMS_XPLAN.display_cursor查看12:52:37 SCOTT@ prod>desc dbms_xplanFUNCTION DISPLAY_CURSOR RETURNS DBMS_XPLAN_TYPE_TABLEArgument Name Type In/Out Default?------------------------------ ----------------------- ------ --------SQL_ID VARCHAR2 IN DEFAULTCURSOR_CHILD_NO NUMBER(38) IN DEFAULTFORMAT VARCHAR2 IN DEFAULT如果以scott⽤户访问需要进⾏授权:12:31:44 SYS@ prod>select * from dict where upper(table_name)='V$SESSION';TABLE_NAME COMMENTS------------------------------ ----------------------------------------V$SESSION Synonym for V_$SESSIONElapsed: 00:00:00.0912:31:09 SYS@ prod>grant select on V_$SESSION to scott;Grant succeeded.Elapsed: 00:00:00.1012:43:15 SCOTT@ prod>select * from table(dbms_xplan.display_cursor(null,null,'advanced')); PLAN_TABLE_OUTPUT------------------------------------------------------------------------------------------------------User has no SELECT privilege on V$SQL_PLAN解决权限不⾜:12:42:33 SYS@ prod>grant select any table to scott;Grant succeeded.12:43:46 SYS@ prod>show parameter o7NAME TYPE VALUE------------------------------------ ----------- ------------------------------O7_DICTIONARY_ACCESSIBILITY boolean TRUE12:44:54 SYS@ prod>案例:dbms_xplan.display_cursor12:42:45 SCOTT@ prod>select empno,ename,sal,deptno from emp where empno=7788;EMPNO ENAME SAL DEPTNO---------- ---------- ---------- ----------7788 SCOTT 3000 20Elapsed: 00:00:00.0812:43:15 SCOTT@ prod>select * from table(dbms_xplan.display_cursor(null,null,'all'));PLAN_TABLE_OUTPUT------------------------------------------------------------------------------------------------------SQL_ID bqz9ujgnn4jzu, child number 0-------------------------------------select empno,ename,sal,deptno from emp where empno=7788Plan hash value: 2949544139--------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |--------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | | | 2 (100)| || 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 46 | 2 (0)| 00:00:01 ||* 2 | INDEX UNIQUE SCAN | PK_EMP | 1 | | 1 (0)| 00:00:01 |--------------------------------------------------------------------------------------Query Block Name / Object Alias (identified by operation id):-------------------------------------------------------------PLAN_TABLE_OUTPUT------------------------------------------------------------------------------------------------------1 - SEL$1 / EMP@SEL$12 - SEL$1 / EMP@SEL$1Predicate Information (identified by operation id):---------------------------------------------------2 - access("EMPNO"=7788)Column Projection Information (identified by operation id):-----------------------------------------------------------1 - "EMPNO"[NUMBER,22], "ENAME"[VARCHAR2,10], "SAL"[NUMBER,22],"DEPTNO"[NUMBER,22]2 - "EMP".ROWID[ROWID,10], "EMPNO"[NUMBER,22]32 rows selected.Elapsed: 00:00:00.05案例:12:49:10 SCOTT@ prod>select empno,ename,sal,deptno from emp where empno=7788;EMPNO ENAME SAL DEPTNO---------- ---------- ---------- ----------7788 SCOTT 3000 20Elapsed: 00:00:00.0012:50:06 SCOTT@ prod>select * from table(dbms_xplan.display_cursor(null,null,'advanced')); PLAN_TABLE_OUTPUT------------------------------------------------------------------------------------------------------SQL_ID bqz9ujgnn4jzu, child number 0-------------------------------------select empno,ename,sal,deptno from emp where empno=7788Plan hash value: 2949544139--------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |--------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | | | 2 (100)| || 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 46 | 2 (0)| 00:00:01 | |* 2 | INDEX UNIQUE SCAN | PK_EMP | 1 | | 1 (0)| 00:00:01 |--------------------------------------------------------------------------------------Query Block Name / Object Alias (identified by operation id):-------------------------------------------------------------PLAN_TABLE_OUTPUT------------------------------------------------------------------------------------------------------1 - SEL$1 / EMP@SEL$12 - SEL$1 / EMP@SEL$1Outline Data-------------/*+BEGIN_OUTLINE_DATAIGNORE_OPTIM_EMBEDDED_HINTSOPTIMIZER_FEATURES_ENABLE('11.2.0.1')DB_VERSION('11.2.0.1')ALL_ROWSOUTLINE_LEAF(@"SEL$1")INDEX_RS_ASC(@"SEL$1" "EMP"@"SEL$1" ("EMP"."EMPNO"))END_OUTLINE_DATA*/PLAN_TABLE_OUTPUT------------------------------------------------------------------------------------------------------Predicate Information (identified by operation id):---------------------------------------------------2 - access("EMPNO"=7788)Column Projection Information (identified by operation id):-----------------------------------------------------------1 - "EMPNO"[NUMBER,22], "ENAME"[VARCHAR2,10], "SAL"[NUMBER,22],"DEPTNO"[NUMBER,22]2 - "EMP".ROWID[ROWID,10], "EMPNO"[NUMBER,22]46 rows selected.Elapsed: 00:00:00.0612:50:21 SCOTT@ prod>这种⽅法在 SQLPLUS中查看刚执⾏过的 SQLSQLSQL的执⾏计划。
sql执行计划怎么看
sql执行计划怎么看SQL执行计划怎么看。
SQL执行计划是指数据库系统为了执行SQL语句而生成的一种执行策略,它描述了数据库系统是如何执行SQL语句的,包括了SQL语句的执行顺序、执行方式、数据访问路径等信息。
通过查看SQL执行计划,我们可以了解数据库系统是如何处理我们的SQL查询的,从而可以对查询进行优化,提高查询性能。
一、查看SQL执行计划的方法。
在Oracle数据库中,我们可以通过使用EXPLAIN PLAN命令或者使用SQL Developer工具来查看SQL执行计划。
在SQL Server数据库中,我们可以使用SET SHOWPLAN_TEXT ON命令或者使用SQL Server Management Studio来查看SQL执行计划。
不同的数据库系统可能有不同的查看方法,但基本原理是相似的,都是通过一定的方式来获取数据库系统生成的执行计划信息。
二、执行计划中的重要信息。
1. 执行顺序,执行计划中会显示SQL语句中各个操作的执行顺序,包括了表的访问顺序、连接顺序、子查询的执行顺序等信息。
了解执行顺序可以帮助我们理解SQL语句的执行逻辑,从而进行优化。
2. 访问方法,执行计划中会显示数据库系统选择的数据访问方法,比如全表扫描、索引扫描、索引范围扫描等。
不同的访问方法对查询性能有着不同的影响,了解访问方法可以帮助我们选择合适的索引或者优化查询语句。
3. 访问路径,执行计划中会显示数据库系统选择的数据访问路径,包括了表之间的连接方式、数据的传输方式等。
了解访问路径可以帮助我们理解数据的流向,从而进行优化。
4. 执行计划树,执行计划通常以树状结构的形式展示,通过查看执行计划树我们可以清晰地了解SQL语句的执行流程,从而可以找到优化的方向。
三、如何解读SQL执行计划。
1. 执行计划中的成本估算,执行计划中通常会显示每个操作的成本估算,包括了CPU成本、I/O成本等。
通过比较不同操作的成本估算,我们可以找到执行计划中的瓶颈,从而进行优化。
sql执行计划怎么看
sql执行计划怎么看SQL执行计划是数据库优化和性能调优中非常重要的一个环节,通过查看SQL执行计划,可以了解SQL语句的执行情况,找到潜在的性能瓶颈,并对SQL语句进行优化。
那么,SQL执行计划怎么看呢?接下来,我们将详细介绍SQL执行计划的相关知识。
首先,我们需要了解SQL执行计划是什么。
SQL执行计划是数据库系统根据SQL语句生成的一种执行方案,它告诉数据库系统如何获取需要的数据。
SQL执行计划可以通过数据库管理系统提供的工具来查看,比如在Oracle数据库中,可以通过使用EXPLAIN PLAN命令来获取SQL执行计划。
接下来,我们来看一下如何查看SQL执行计划。
在Oracle数据库中,可以使用如下命令来查看SQL执行计划:```sql。
EXPLAIN PLAN FOR。
SELECT FROM table_name WHERE condition;```。
通过上面的命令,数据库系统会为该SQL语句生成执行计划,并将其保存在数据库中。
接着,我们可以使用如下命令来查看执行计划:```sql。
SELECT FROM TABLE(DBMS_XPLAN.DISPLAY);```。
上述命令将显示该SQL语句的执行计划,包括如何获取数据、使用了哪些索引、执行顺序等信息。
在其他数据库系统中,也有类似的命令或工具来查看SQL执行计划,可以根据具体的数据库系统来选择合适的方法。
接着,我们来解读SQL执行计划。
SQL执行计划通常包括以下几个重要的部分:1. ID,每个SQL执行计划都有一个唯一的ID,用于标识该执行计划。
2. Operation,描述了SQL语句的执行操作,比如全表扫描、索引扫描、排序等。
3. Name,执行操作的名称,通常与Operation对应,比如TABLE ACCESS FULL、INDEX RANGE SCAN等。
4. Rows,估计的结果集行数。
5. Bytes,估计的结果集字节数。
怎样看oracle查询语句执行计划?数据库教程-电脑资料
怎样看oracle查询语句执行计划?数据库教程-电脑资料
oracle|语句|执行
SQLPLUS的AutoTrace是分析SQL的执行计划,执行效率的一个非常简单方便的工具,在绝大多数情况下,也是非常有用的工具,。
1。
如何设置和使用AUTOTRACE
SQL> connect / as sysdba
SQL> @?/rdbms/admin/utlxplan.sql
Table created.
SQL> create public synonym plan_table for plan_table;
Synonym created.
SQL> grant select,update,insert,delete on plan_table to public;
Grant succeeded.
SQL> @?/sqlplus/admin/plustrce.sql
SQL>grant plustrace to public.
2. 理解和使用AutoTrace
对于SQL 调整,使用Autotrace是最简单的方法了,我们只需要做:
SQL>SET AUTOTRACE ON
我们就可以看到我们SQL的执行计划,执行成本(PHYSICAL READ/CONSISTENT READ...)
加上SET Timing On或者Set Time On,我们可以得到很多我们需要的数据,
电脑资料
《怎样看oracle查询语句执行计划?数据库教程》(https://www.)。
然后在toad里面对某一条sql语句按下Ctrl+e就可以看到这条语句的执行计划了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TOAD中查看SQL的执行计划
一、TOAD中查看SQL的执行计划:
1、点击工具栏上120救护车图标按钮
2、快捷键Ctrl+E
3、菜单View-Explain plan
二、如果是默认安装TOAD,在查看执行计划时会报一个错:
ORA-02404: 未找到指定的计划表
稍微研究了一下,解决这个问题基本上有3个方案:
1、最直接的解决方案:直接创建TOAD所需要的计划表,该脚本在%oracle_home%\rdbms\admin\utlxplan.sql 中,不过该脚本是创建PLAN_TABLE表,表结构一样,改名为TOAD_PLAN_TABLE 即可。
如下:
CREATE TABLE TOAD_PLAN_TABLE (
STATEMENT_ID VARCHAR2 (32),
TIMESTAMP DATE,
REMARKS VARCHAR2 (80),
OPERATION VARCHAR2 (30),
OPTIONS VARCHAR2 (30),
OBJECT_NODE VARCHAR2 (128),
OBJECT_OWNER VARCHAR2 (30),
OBJECT_NAME VARCHAR2 (30),
OBJECT_INSTANCE NUMBER,
OBJECT_TYPE VARCHAR2 (30),
SEARCH_COLUMNS NUMBER,
ID NUMBER,
COST NUMBER,
PARENT_ID NUMBER,
POSITION NUMBER,
CARDINALITY NUMBER,
OPTIMIZER VARCHAR2 (255),
BYTES NUMBER,
OTHER_TAG VARCHAR2 (255),
OTHER LONG,
PARTITION NUMBER,
PARTITION_START VARCHAR2 (255),
PARTITION_STOP VARCHAR2 (255),
DISTRIBUTION VARCHAR2 (30) ) ;
2、偷机取巧的处理方案:修改TOAD参数
将菜单View -> Options ->Oracle -> General -> Explain Plan Table name中的参数修改为PLAN_TABLE即可使用。
3、通过TOAD自带功能创建表结构:
在菜单tools -> server side objects wizard下运行,不过要建立一些对象,最好建议一个单独的表空间放这些对象。
在10g中带有plan_table这张表,但是将名字改为了plan_table$
只需$ORACLE_HOME/sqlplus/admin/plustrce.sql创建plustrace角色
grant plustrace to public。