暂无图片
awr出现大量** SQL Text Not Available **
我来答
分享
暂无图片 匿名用户
awr出现大量** SQL Text Not Available **

数据库内存只分配了服务器40%的内存但是服务器内存使用率达到了百分之90左右。

数据库的日志操作正常,cpu使用率也很小。

数据库版本:11.2.0.4

查看awr报错

其中:

Execute to Parse % 只有4.5

SQL ordered by Version Count
Version Count基本都在好几百
sql text基本上都是** SQL Text Not Available **

请教一下这种情况如何处理?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
张sir

数据库一般都是大io的,内存使用率百分之90,大概率是有大量内存被用来作为io的cache了,可以重启下os。或者看看到底哪个进程占用的内存最多,11g一般没有bug进程占用大内存

暂无图片 评论
暂无图片 有用 1
打赏 0
小草

在Oracle数据库中,出现大量“SQL Text Not Available”的情况,通常是由于以下原因之一:

共享池不足:共享池中的内存不足以存储所有的SQL文本和执行计划。尽管你提到CPU使用率较低,但如果内存分配不当,可能会导致共享池频繁溢出。

SQL语句版本过多:SQL ordered by Version Count中版本计数很高,这可能表明有很多不同的SQL文本在执行,导致共享池中的空间被消耗。每个不同的SQL版本都会占用内存。

处理建议:
增加共享池大小:

可以考虑增加shared_pool_size,以便存储更多的SQL文本和执行计划。
sql
ALTER SYSTEM SET shared_pool_size = <新的值> SCOPE = BOTH;
使用SQL对象库:

如果应用程序经常生成相似的SQL,考虑使用绑定变量,以减少SQL版本的数量。
检查和优化SQL:

定期使用AWR报告中的SQL性能分析,识别和优化高版本计数的SQL语句。
使用SQL Tuning Advisor:

对于版本计数高的SQL,使用SQL Tuning Advisor来分析和优化SQL语句。
监控和调整其他内存参数:

确保pga_aggregate_target和其他内存参数配置合理,避免整体内存使用过高。
清理无用的SQL:

使用DBMS_SHARED_POOL来清理不必要的对象或释放内存。
定期收集统计信息:

通过DBMS_STATS收集表和索引的统计信息,以帮助优化器选择更好的执行计划。
检查应用程序逻辑:

确保应用程序中使用了有效的SQL编写方式,减少不必要的SQL生成。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
oracle大文本的字段插入一条要很久,有没有办法快点?
回答 2
看你的存储速度了,另外这个大字段具体是多大
Oracle删除某张表的大数据量,怎么快速删除?大概有两亿条数据
回答 1
已采纳
只有droptable和truncatetable才能快速删除这么多的数据。如果表是分区表,直接drop对应分区即可。如果表中删除掉数据后只剩少量数据,则先新建一个临时表将要保留的数据插入到临时表中。
oracle pfile选择题
回答 3
已采纳
当你创建profile使用ora12cverifyfunction的时候,这里面有个强制密码策略,针对的有几项:FAILEDLOGINCOUNT,PASSWORDLOCKTIME,PASSWORDGR
AWR分析报告问题求助:看不懂
回答 4
pga,sql优化下,io高,原档看着更好点
问一下装oracle 软件这个无法交叉检验重要吗?可以无视吗?
回答 2
检查一下scanip是否正常
mysql数据导入oracle , 表结构不一致怎么办?
回答 4
已采纳
oracle有很多方法可以查看表结构。如果你对sql不熟悉,建议使用PLSQLDeveloper软件或navicat连接到oracle数据库,编辑对应表的表结构即可。
Oracle DG环境中主库使用ASM,备库能不能不用ASM?
回答 3
已采纳
dbfilenameconvertlogfilenameconvert
Oracle 存储过程中怎么加载数据文件到表里?
回答 1
我知道有2种方法:&nbsp;都需要把数据文件放到数据库服务器上创建的directory方法1:创建外部表,&nbsp;然后insert&nbsp;into&nbsp;目标表&nbsp;select&
在配置OGG时,如果加错了表,怎么取消呢?
回答 2
方式一:可以OGG命令行执行deletetrandatauser.table方式二:由于OGG添加日志组其实是命名附加日志组的方式,并不是主键/外键/唯一键组合日志组,所以需要查看视图dbaloggr
oracle 两个节点用ctss同步时间,系统时间,时区,硬件时间等都检查过了一致的,但是ctss一直认为有很大误差
回答 1
已采纳
建议先将操作系统的ntp和chrony服务关闭了,再通过crsctlcheckctss命令观察下ctss时间同步时否正常;时间同步好像是毫秒级别缩短时间差异的,正常等几天后时间就同步了;