篇一 :使用plsql执行计划进行sql调优

使用plsql执行计划进行sql调优(转载) 一段SQL代码写好以后,可以通过查看SQL的执行计划,初步预测该SQL在运行时的性能好坏,尤其是在发现某个SQL语句的效率较差时,我们可以通过查看执行计划,分析出该SQL代码的问题所在。

那么,作为开发人员,怎么样比较简单的利用执行计划评估SQL语句的性能呢?总结如下步骤供大家参考:

1、 打开熟悉的查看工具:PL/SQL Developer。

在PL/SQL Developer中写好一段SQL代码后,按F5,PL/SQL Developer会自动打开执行计划窗口,显示该SQL的执行计划。

2、 查看总COST,获得资源耗费的总体印象

一般而言,执行计划第一行所对应的COST(即成本耗费)值,反应了运行这段SQL的总体估计成本,单看这个总成本没有实际意义,但可以拿它与相同逻辑不同执行计划的SQL的总体COST进行比较,通常COST低的执行计划要好一些。

3、 按照从左至右,从上至下的方法,了解执行计划的执行步骤

执行计划按照层次逐步缩进,从左至右看,缩进最多的那一步,最先执行,如果缩进量相同,则按照从上而下的方法判断执行顺序,可粗略认为上面的步骤优先执行。每一个执行步骤都有对应的COST,可从单步COST的高低,以及单步的估计结果集(对应ROWS/基数),来分析表的访问方式,连接顺序以及连接方式是否合理。

4、 分析表的访问方式

表的访问方式主要是两种:全表扫描(TABLE ACCESS FULL)和索引扫描(INDEX SCAN),如果表上存在选择性很好的索引,却走了全表扫描,而且是大表的全表扫描,就说明表的访问方式可能存在问题;若大表上没有合适的索引而走了全表扫描,就需要分析能否建立索引,或者是否能选择更合适的表连接方式和连接顺序以提高效率。

5、 分析表的连接方式和连接顺序

表的连接顺序:就是以哪张表作为驱动表来连接其他表的先后访问顺序。

…… …… 余下全文

篇二 :PLSQL 执行sql语句 F5 快捷键的解释

通过F5查看到的执行计划,其实是pl/sql developer工具内部执行查询 plan_table表然后格式化的结果。

select * from plan_table where statement_id='...'。其中

Description列描述当前的数据库操作,

Object owner列表示对象所属用户,

Object name表示操作的对象,

Cost列表示当前操作的代价(消耗),这个列基本上就是评价SQL语句的优劣, Cardinality列表示操作影响的行数,

Bytes列表示字节数

…… …… 余下全文

篇三 :oracle定时执行plsql

DBMS_Job包的用法

包含以下子过程:

Broken()过程。

change()过程。

Interval()过程。

Isubmit()过程。

Next_Date()过程。

Remove()过程。

Run()过程。

Submit()过程。

User_Export()过程。

What()过程。

1、

Broken()过程更新一个已提交的工作的状态,典型地是用来把一个已破工作标记为未破工

作。

这个过程有三个参数:job 、broken与next_date。

PROCEDURE Broken ( job IN binary_integer,

Broken IN boolean,

next_date IN date :=SYSDATE)

job参数是工作号,它在问题中唯一标识工作。

broken参数指示此工作是否将标记为破——TRUE说明此工作将标记为破,而FLASE说明 此工作将标记为未破。

next_date参数指示在什么时候此工作将再次运行。此参数缺省值为当前日期和时间。

2、

Change()过程用来改变指定工作的设置。

这个过程有四个参数:job、what 、next_date与interval。

PROCEDURE Change ( job IN binary_integer,

What IN varchar2,

next_date IN date,

interval IN varchar2)

此job参数是一个整数值,它唯一标识此工作。

What参数是由此工作运行的一块PL/SQL代码块。

next_date参数指示何时此工作将被执行。

…… …… 余下全文

篇四 :PLSQL如何使用DBMS_XPLAN查看执行计划

查询执行计划更靠谱的方法:DBMS_XPLAN

PLSQL如何使用DBMSXPLAN查看执行计划

PLSQL如何使用DBMSXPLAN查看执行计划

PLSQL如何使用DBMSXPLAN查看执行计划

PLSQL如何使用DBMSXPLAN查看执行计划

PS:红色标识的方法为常用方法 步骤一:

使用DISPLAY_CURSOR必须要对

V$SQL,V$SQLPLAN_STATISTICS_ALL,V$SESSION,V$SQLPLAN 四张视图有权限 方法如下:

对于普通用户查看那这四张表只能查看同义词

这四个视图对应的表,如下图:

步骤二:

Alter session set statistics_level = all;(收集信息有开销) 步骤三:

执行select SQL 步骤四:

查询执行计划必须要设置set serveroutput off,本人无法在PL/SQL中无法设置,所以需指定SQL_ID

Select sql_id,sql_test from V$SQL Where sql_text not like ‘%like%’ And sql_text like ‘%SQL%’; 查询结果如下图:

PLSQL如何使用DBMSXPLAN查看执行计划

步骤五:

执行DBMS_XPLAN.DISPALY_CURSOR

Select * from table(dbms_xpaln(SQL_ID,null,’ADVANCED PEEKED_BINDS’));

执行结果如下:

PLSQL如何使用DBMSXPLAN查看执行计划

ALLSTATS LAST

以上资料来自刘相兵老师的培训视频,个人总结整理3步骤。

…… …… 余下全文

篇五 :plsql使用技巧详解

plsql使用技巧详解

1.记住登陆密码

为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码;设置方法:

PL/SQL Developer 7.1.2 ->tools->Preferences->Oracle->Logon History , “Store history”是默认勾选的,勾上“Store with password” 即可,重新登录在输入一次密码则记住了;

2.登录后默认自动选中My Objects

默认情况下,PLSQL Developer登录后,Brower里会选择All objects,如果你登录的用户是dba,要展开tables目录,正常情况都需要Wait几秒钟,而选择My Objects后响应速率则是以毫秒计算的。

设置方法:

Tools菜单 --> Brower Filters,会打开Brower Folders的定单窗口,把“My Objects”设为默认即可。

Tools菜单--Brower Folders,中把你经常点的几个目录(比如:Tables Views Seq Functions Procedures)移得靠上一点,并加上颜色区分,这样你的平均寻表时间会大大缩短。

3.类SQL PLUS窗口

File->New ->Command Window 这个类似于oracle的客户端工具sql plus,但用比它好用多了;

4.关键字自动大写

Tools->Preferences->Editor,将Keyword case选择Uppercase。这样在窗口中输入sql语句时,关键字会自动大写,而其它都是小写。这样阅读代码比较容易,且保持良好得编码风格,同理,在

Tools->Preferences->Code Assistant里可以设置数据库对象的大写、小写,首字母大写等。

…… …… 余下全文

篇六 :获取当前运行的执行计划

如何获取当前正在跑程序的执行计划

1获取当前程序执行SQL的SQL_ID,这有两种途径:

a.

SELECT T.SQL_ID FROM GV$SESSION T WHERE T.STATUS<>'BACKGROUND'

AND T.STATUS='ACTIVE' AND T.MODULE LIKE '%MCA_APD_CHECK_PUBLIC_PKG%';

b.

根据日志记录,定位到程序目前执行到哪一步,再提取这一步的SQL,根据SQL文本获取: SELECT*FROM GV$SQL T WHERE T.SQL_TEXT LIKE '%INSERT INTO

OWR_AP_BALANCE_F%';

根据SQL_ID,在PLSQL DEVELOPER 中执行下面的脚本,获得CLOB格式的执行计划,建议打开后粘贴到文本编辑器查看;

SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(SQL_ID =>'3mf9uj08kxj30') FROM DUAL;

1.ORACLE中所有的V$打头的视图都是动态视图,在运行时随时变化的,因此一个存储过程程序执行一段时间,SQL_ID可能在不断变化;

2.每个V$视图都有对应的GV$视图,多节点的环境(如目前我们使用的exadata平台)下需要使用GV$,如果查看V$视图只能获取当前连接节点

(数据库实例)的信息。

3.调用了DBMS_SQLTUNE.REPORT_SQL_MONITOR获取的执行计划报告,最大的特点是包含了SQL当前执行状态的信息,即计划估算值和实际执行状态有个明显对比;

SQL MONITOR生成执行计划报告的阅读要点:

1.从头到尾,依次是SQL文本信息,SQL总体执行信息(包含执行时间),并行相关信息,执行计划;

…… …… 余下全文

篇七 :20xx最新整理PLSQL常用设置

1,登录后默认自动选中My Objects

默认情况下,PLSQL Developer登录后,Brower里会选择All objects,如果你登录的用户是dba,要展开tables目录,正常情况都需要Wait几秒钟,而选择My Objects后响应速率则是以毫秒计算的。

Tools菜单 --> Object Brower Filters,会打开Brower Folders的定单窗口,把“My Objects”设为默认即可。

Tools菜单--> Object Brower Folders,中把你经常点的几个目录(比如:Tables Views Seq Functions Procedures)移得靠上一点,并加上颜色区分,这样你的平均寻表时间会大大缩短,试试看。

/*设置方法:Tools菜单--Brower Folders,会打开Brower Folders的定单窗口,把“My Objects”移到最顶端即可。

同理,可以把你经常点的几个目录(比如:tables Views Seq Functions

Procedures)移得靠上一点,并加上颜色区分,这样你的平均寻表时间会大大缩短,试试看。*/

2,记住密码

这是个有争议的功能,因为记住密码会给带来数据安全的问题。

但假如是开发用的库,密码甚至可以和用户名相同,每次输入密码实在没什么意义,可以考虑让PLSQL Developer记住密码。

位置:Tools菜单--Preferences--Oracle--Logon HIstory--Store with password

3,双击即显示表数据

PLSQL Developer里鼠标双击表或者视图时的默认响应实在让我感到失望,因为我最关心的是表结构和数据,但是双击后这两件事情都没有发生,也许默认响应是高手们需要的,但对我来说查看数据和表结构是最主要的,其他的我不关心。 不过好的是这是可以设置的,你可以给鼠标双击和拖放绑定需要的事件,比如:双击编辑数据,拖放显示表结构,Yeah!

…… …… 余下全文

篇八 :plsql的使用技巧

1、PL/SQL Developer记住登陆密码

在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码;

设置方法:PL/SQL Developer7.1.2 ->tools->Preferences->Oracle->Logon History,“Store history”是默认勾选的,勾上“Store with password”即可,重新登录在输入一次密码则记住了。

2、执行单条SQL语句

在使用PL/SQL Developer的SQL Window时,按F8键,PL/SQL Developer默认是执行该窗口的所有SQL语句,需要设置为鼠标所在的那条SQL语句,即执行当前SQL语句;

设置方法:PL/SQL Developer7.1.2-->tools->Preferences-->Window types,勾上“AutoSelect Statement”即可。

3、格式化SQL语句

在使用PL/SQL Developer的SQL Window时,有时候输入的SQL语句太长或太乱,希望能用比较通用的写法格式话一下,这样看起来会好看些,也好分析; 使用方法:选中需要格式化的SQL语句,然后点击工具栏的PL/SQLbeautifier按钮即可.

4、查看执行计划

在使用PL/SQL Developer的SQL Window时,有时候输入的SQL语句执行的效率,分析下表结构,如何可以提高查询的效率,可以通过查看Oracle提供的执行计划;

使用方法:选中需要分析的SQL语句,然后点击工具栏的Explain plan按钮(即执行计划),或者直接按F5即可。

5、调试存储过程

在使用PL/SQL Developer操作Oracle时,有时候调用某些存储过程,或者调试存储过程;

…… …… 余下全文