暂无图片
分享
疏浚
2019-03-04
sql语句执行时间长,执行了1个多月了。
各位专家老师:

SELECT *
  FROM "GLFUNCA"
 WHERE "RCLNT" = :a0
   AND "RLDNR" = :a1
   AND "POPER" = :a2
   AND "RBUKRS" = :a3
   AND "RACCT" = :a4
   AND "RYEAR" = :a5
复制

我们的数据库系统中这个sql语句执行了一个多月,一直还在执行,没有任何报错,表的记录有1.8亿多条,同时执行了两个这样的查询,是做sap归档时归档程序自动执行的。不知道是不是出了什么问题。请专家指导一下,第一次提问,不知道还有什么规矩,不周的地方请包涵,谢谢!

收藏
分享
9条回答
默认
最新
疏浚
暂无图片 评论
暂无图片 有用 0
打赏 0
Moone

AWR控制你这个SQL  1天多实际执行了3,293次,比没有发现执行1个多月。请问你这个从哪里看到的?如果是效率不好,可以提取awrsqrpt进行执行计划的分析。

暂无图片 评论
暂无图片 有用 0
打赏 0
Kamus

image.png


该SQL在AWR历时的33个小时里,一共执行了3293次,平均每次执行时间72秒,占据了将近20%的数据库活动时间,确实是你这个系统中最消耗资源的SQL。

但是如Moone所说,并没有显示出这个SQL一直运行了一个多月。


image.png


该SQL在物理读排名中位居第2,1.8亿条记录即使是创建了索引,如果是索引范围扫描,那么也确实需要消耗比较大的物理读。

因此如果该SQL每次返回的记录并不是几条,而是十几条或者数百条,那么可能较难对其进行优化。

暂无图片 评论
暂无图片 有用 0
打赏 0
疏浚

好的,谢谢两位专家老师的回复。我再观察一段时间。

暂无图片 评论
暂无图片 有用 0
打赏 0
疏浚

Moone老师,我是在SAP层面和toad工具中看到数据库一直在跑这个sql语句,所以认为这个语句跑了很长时间都没跑完。没认真分析awr报告。

暂无图片 评论
暂无图片 有用 0
打赏 0
罗海雄

其实很简单,你经常看到这个SQL, 但其实每次都是新的SQL在执行。就像你这一个月经常路上看到一辆车,不能说明它就在路上开了一个月对不对

暂无图片 评论
暂无图片 有用 0
打赏 0
罗海雄

另外,从AWR中可以发现,每次执行79秒,其中5秒是CPU, 每次逻辑读80550是,物理读是69746,命中率相当低。每个I/O消耗大概是 (79000-5000)/69746=1ms, IO性能还可以。可以看看执行计划的情况,存在索引选择度不够好的可能性

暂无图片 评论
暂无图片 有用 0
打赏 0
疏浚

是的,收益匪浅,谢谢三位专家的指点。

暂无图片 评论
暂无图片 有用 0
打赏 0
疏浚
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
oracle 11.2.0.1 windows 会话连接不活动
回答 5
已采纳
感谢@文成大哥指正,上个回复用的手机敲的有错误,DCD(DeadConnectionDetection),不是数据同步工具CDC组件(ChangeDataCapture改变数据捕获)。DCD是用于检查
请问oracle11g最新的补丁,有哪些需要安装?
回答 3
已采纳
OJVMPSUGIPSU最全了,GIPSU里面包含了DBPSU,如果不考虑升级的情况下,建议选择这个,先安装GIPSU,再安装OJVMPSU 
Oracle RAC数据库和经常所说的数据库有什么区别呢?
回答 3
已采纳
Oraclerac数据库主要是提供oracle实例进程,以供客户端访问集群系统。从Oracle运行机制来说,集群中每台服务器就是一个Oracle实例,多个实例对应同一个Oracle数据库,组成了Ora
Oracle添加数据文件时卡住了,怎么操作?
回答 6
这个问题是不是和系统的内存、硬盘性能什么的有有关系,最后是怎么处理的?
各位 老师请教下, 在只读active dataguard上挂的应用,如何获取某个时间段性能差的SQL呢? ash相关v$视图能抓到sql_id 但v$SQL相关视图都找不到了。 之前历史执行的SQL有办法抓出或后续有什么办法抓到吗?
回答 1
已采纳
ADG可以通过statspack收集统计信息。
在维护oracle过程中,一般怎么分库分表呢?
回答 2
已采纳
在维护oracle过程中,一般怎么在Oracle中,分库分表是一种常见的解决方案,可以提高系统性能和管理大量数据。以下是一些常见的分库分表方法:水平分区:将表根据数据划分为多个分区,每个分区存储一定范
谁可以提供下ORACLE 11G的静态库libclntst11.a 或者告知哪里有下载? 官网找的都是动态库
回答 1
这个是做什么用的?
数据库大量使用dblink会导致数据库性能变差?
回答 2
以前遇到的一个dblink的问题:开发人员使用了dblink后没有释放dblinksession,也没有session重用,不断新开session,导致对方库的session耗尽。所以使用dblink
orcale某张表已经做了分区,但是数据量过大还是会影响到查询效率。想对它进行优化,添加分表会对分区有影响吗?
回答 3
已采纳
增加分表是什么意思呢?如果你是说要分表,那么是进行垂直拆分还是水平拆分呢?或者你的意思是对已经存在的分区再做子分区呢?如果是分表,那么应用那边需要改代码。建议这种情况下,查询效率主要还是通过优化sql
用户密码验证问题
回答 6
724小时的业务也可以申请一个停机维护时间既然密码错误,把所有连接的应用密码修改正确就可以了,应用如果较多,可以采用自动化脚本进行批量修改