当前位置:首页 » 编程语言 » oracle查看sql执行效率
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

oracle查看sql执行效率

发布时间: 2022-04-25 19:11:56

⑴ oracle sql的执行效率问题

能具体一点或者
有具体的sql语句吗?
getName(a.id)
是在分页条件之前就执行了。
select
t2.*,getName(a.id)
from
(select
t1.*,
rownum
rn
from
(select
a.id
from
a,
where
a.year
=
'2012'
order
by
a.time)
t1
where
rownum
<=
80)
t2
where
t2.rn
>=
61

⑵ oracle数据库sql语句执行效率问题

方法1.如果表中的数据量较大,可以通过time建立分区,再通过条件建立内部索引。
方法2.建立一张和该表一模一样的表(表2),用来存放每个业务的最大业务时间。建立触发器,没次插入数据时更新表2中的业务发生最大时间,最后关联查询。

⑶ 如何测试oracle sql的执行效率

要分析SQL的效能,最好是看看执行计划什么怎么走的,根据你具体业务逻辑以及表中数据量来具体分析.在pl/sql developer 里是按f5

⑷ 谁教我怎么在PLSQL看执行计划还有看执行效率

不知道你使用的是什么执行工具

如果是si object browser 的话,就在执行的右边有一个按钮。先点一下这个按钮。然后再实行。下面会有执行的效果分析。比如cost,byte数,但是这些只是作为一个参考,关键还是在具体的应用中,根据实际的执行时间来判断哪些index的效率高。千万别以为cost高就是花费的时间多,这是误区。

⑸ oracle 一个简单的sql语句执行效率的比较

比较一下的话,语句一查询次数是两次,而语句二只有一次,我们尽量减少查询次数。
语句一其实就是二的另一种实现,其效果是和语句一相同,但多了很多中间不必要的步骤,所以肯定优先选择二。

至于SQL效率问题多看看别人总结的经验会很快了解,多看执行计划。
查看执行计划在SQL PLUS下可以用:explain sql语句;
PLSQL DEVELOPTER下可以写好语句直接按F5;

我们通常知道使用索引要比全表好,使用索引的时候,ORACLE先通过索引快速找到记录的物理地址,然后再通过物理地址找到记录。全表则是直接扫描所有记录,找到想要的,看起来慢多了,但它少了通过索引查找物理地址这一步,所以在有些情况下可能要比索引快,比如表里的记录很少。

绑定变量,你可以参考:
http://..com/question/298893776?&oldq=1

还有子查询,group by,in,not in,很多人都说尽量不用,其实这些都不能一概而论,要看具体的实际情况,参考执行计划,根据需要去选择,千万别有偏见

⑹ oracle怎么查看sql语句效率

最直接的办法就是打开sql_trace:
alter
session
set
sql_trace=true;(要dba权限)
然后到服务器上追踪文件里面查看这个session执行了哪些sql,不过这是session级的.
也可以使用系统级的.
对系统性能有影响

⑺ oracle怎么查看sql执行计划

一般需要借助第三方工具来查看执行计划。

工具:PL/SQL

步骤:

1、打开第三方工具PL/SQL,并登录到指定数据库。

⑻ oracle如何查出历史记录中执行效率低的SQL语句

如果你用的是oracle 10g的话,这个有种很简单的方法就是查看awr报告。

很简单,你登陆到服务器的操作系统,进入到$ORACLE_HOME/rdbms/admin目录下。然后sqlplus "/as sysdba"登陆到数据库,执行
@awrrpt.sql;
然后按照提示一步一步做,注意格式选html(这样方便你阅读)。最后会让你命名这个文件。

完了之后,你把那个文件拷贝到本地用IE打开就看到了。里面有很详细的,包括这段时间占CPU,IO,等等最严重的SQL排行。很好很强大。
-------------------------

至于你说查看当前的sql,你在v$session里查看长期blocking别人的session ID,然后根据这个session id从v$text里就能查到这个sql了。

-------------------------

很明确了吧

⑼ 如何查询oracle 数据库性能,sql资源占用

作为一个开发/测试人员,或多或少都得和数据库打交道,而对数据库的操作归根到底都是SQL语句,所有操作到最后都是操作数据,那么对sql性能的掌控又成了我们工作中一件非常重要的工作。下面简单介绍下一些查看oracle性能的一些实用方法:

1、查询每台机器的连接数

selectt.MACHINE,count(*)fromv$sessiontgroupbyt.MACHINE

这里所说的每台机器是指每个连接oracle数据库的服务器,每个服务器都有配置连接数据库的连接数,以websphere为例,在数据源中,每个数据源都有配置其最大/最小连接数。

执行SQL后,可以看到每个服务器连接oracle数据库的连接数,若某个服务器的连接数非常大,或者已经达到其最大连接数,那么这台服务器上的应用可能有问题导致其连接不能正常释放。

2、查询每个连接数的sql_text

v$session表里存在的连接不是一直都在执行操作,如果sql_hash_value为空或者0,则该连接是空闲的,可以查询哪些连接非空闲,web3是机器名,就是WebSphereApplicationServer的主机名。

selectt.sql_hash_value,t.*fromv$sessiontwheret.MACHINE='web3'andt.sql_hash_value!=0

这个SQL查询出来的结果不能看到具体的SQL语句,需要看具体SQL语句的执行下面的方法。

3、查询每个活动的连接执行什么sql

selectsid,username,sql_hash_value,b.sql_text

fromv$sessiona,v$sqltextb

wherea.sql_hash_value=b.HASH_VALUEanda.MACHINE='web3'

orderbysid,username,sql_hash_value,b.piece

orderby这句话的作用在于,sql_text每条记录不是保存一个完整的sql,需要以sql_hash_value为关键id,以piece排序,如图

Username是执行SQL的数据库用户名,一个sql_hash_value下的SQL_TEXT组合成一个完整的SQL语句。这样就可以看到一个连接执行了哪些SQL。

4、.从V$SQLAREA中查询最占用资源的查询

selectb.usernameusername,a.disk_readsreads,a.executionsexec,

a.disk_reads/decode(a.executions,0,1,a.executions)rds_exec_ratio,

a.sql_textStatement

fromv$sqlareaa,dba_usersb

wherea.parsing_user_id=b.user_id

anda.disk_reads>100000

orderbya.disk_readsdesc;

用buffer_gets列来替换disk_reads列可以得到占用最多内存的sql语句的相关信息。

V$SQL是内存共享SQL区域中已经解析的SQL语句。

该表在SQL性能查看操作中用的比较频繁的一张表,关于这个表的详细信息大家可以去http://apps.hi..com/share/detail/299920#上学习,介绍得比较详细。我这里主要就将该表的常用几个操作简单介绍一下:

1、列出使用频率最高的5个查询:

selectsql_text,executions

from(selectsql_text,executions,

rank()over

(orderbyexecutionsdesc)exec_rank

fromv$sql)

whereexec_rank<=5;

该查询结果列出的是执行最频繁的5个SQL语句。对于这种实用非常频繁的SQL语句,我们需要对其进行持续的优化以达到最佳执行性能。

2、找出需要大量缓冲读取(逻辑读)操作的查询:

selectbuffer_gets,sql_text

from(selectsql_text,buffer_gets,

dense_rank()over

(orderbybuffer_getsdesc)buffer_gets_rank

fromv$sql)

wherebuffer_gets_rank<=5;

这种需要大量缓冲读取(逻辑读)操作的SQL基本是大数据量且逻辑复杂的查询中会遇到,对于这样的大数据量查询SQL语句更加需要持续的关注,并进行优化。

3、持续跟踪有性能影响的SQL。

SELECT*FROM(

SELECTPARSING_USER_ID,EXECUTIONS,SORTS,

COMMAND_TYPE,DISK_READS,sql_textFROMv$sqlarea

ORDERBYdisk_readsDESC

)

WHEREROWNUM<10

这个语句在SQL性能查看中用的比较多,可以明显的看出哪些SQL会影响到数据库性能。

本文主要介绍了使用SQL查询方式查看oracle数据库SQL性能的部分常用方法。此外还有许多工具也能实现SQL性能监控,大家可以在网上搜索相关知识进行学习。


转载仅供参考,版权属于原作者

⑽ oracle sql的执行计划如何查看

方法/步骤

打开PL/SQL Developer软件,请确保plsql能够成功连接到一个oracle数据库。

在PL/SQL Developer中写好一段SQL代码,按F5,或者点击“执行执行计划”图标,PL/SQL Developer会自动打开执行计划窗口,显示该SQL的执行计划。

可以看到窗口上方是sql语句,下方显示执行计划表格。表格的列主要包含描述、用户、对象、成本花费、IO开销等,表格,当然表格列还可以自定义。表格的行包含了查询逻辑的执行顺序和各个步骤信息。

执行计划表格内容的执行顺序是:按照从左至右,从上至下的步骤执行,具体是指执行计划按照层次逐步缩进,从左至右看,缩进最多的那一步最先执行,如果缩进量相同,则按照从上而下的方法判断执行顺序。

通过查看执行计划表格的cost列,即成本花费能够知道哪个步骤花费的成本高,通过查看执行计划表格的行中的objectname列,能够知道是否使用到表中的索引。
步骤阅读
6
本文先简单介绍在plsql中的使用方法,后续会逐步完成各种理论和技巧的使用方法,例如优化器、表连接访问方法、索引等