关于ORA-04030报错的求助

[复制链接]
查看11 | 回复6 | 2011-11-1 16:25:22 | 显示全部楼层 |阅读模式
系统是windowsserver200332位的系统。10G的内存。内存调整过了,SGA为8G,PGA=1.8G。这个是老的数据库,不知道是谁弄的。

我看了下,使用了4GT特性。

给一张表创建索引的时候,出现报错,打开报错日志看到以下的信息

ksedmp: internal or fatal error
ORA-00600: 内部错误代码, 参数: [17303], [0xB66C6428], [], [], [], [], [], []
ORA-04030: 在尝试分配 50440 字节 (kxs-heap-f,frame segment) 时进程内存不足
Current SQL statement for this session:
select * from ( /* criteria query */ select this_.UUID as UUID59_0_, this_.RYID as RYID59_0_, this_.RYBH as RYBH59_0_, this_.SFZH as SFZH59_0_, this_.TFXM as TFXM59_0_, this_.TFYHZGX as TFYHZGX59_0_, this_.SFZ as SFZ59_0_, this_.XB as XB59_0_, this_.GXRYHZGX as GXRYHZGX59_0_, this_.LGMC as LGMC59_0_, this_.CJSJ as CJSJ59_0_, this_.CS as CS59_0_, this_.XM as XM59_0_, this_.HJDZ as HJDZ59_0_, this_.RZSJ as RZSJ59_0_, this_.TZSJ as TZSJ59_0_, this_.LDZZ as LDZZ59_0_, this_.SSFXJ as SSFXJ59_0_, this_.SSPCS as SSPCS59_0_, this_.GXSJ as GXSJ59_0_, this_.ZTBH as ZTBH59_0_ from ZHCX.ZHCX_GAXX_TFBD_TFGXRLGYGJ this_ where this_.SFZH in (:1, :2, :3) and ROWNUM <= 500 ) where rownum <= :4
----- Call Stack Trace -----
calling
call entry
argument values in hex
location
type point
(? means dubious value)
-------------------- -------- -------------------- ----------------------------
00404686
CALLrel00404694
0 1
0040307E
CALLrel00404660
0
0043AB6A
CALLrel00402CFC
3
603A816A
CALLreg00000000
78943348 3
603A83FF
CALLrel603A80D8
78943348 B63F1F60 4397 1

B659DBA4
603A82EA
CALLrel603A83AA
78943348 B63F1F60 4397 1

B659DBA4
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
以下省略
我想请教以下几个问题
(1)就是使用了4GT特性,是不是oracle数据库最多也就是使用3G内存。
(2)但是我看到里面的SGA为8G,PGA=1.8G。这个设置了,是不是也不管用。如果不管用,我怎么查到它用到的最大的内存是多少?
(3) 出现的报错原因我看了就是内存的问题。这个优化的思路是什么
(4) 在报错日子里面有这样的语句
Current SQL statement for this session:
select * from ( /* criteria query */ select this_.UUID as UUID59_0_, this_.RYID as RYID59_0_, this_.RYBH as RYBH59_0_, this_.SFZH as SFZH59_0_, this_.TFXM as TFXM59_0_, this_.TFYHZGX as TFYHZGX59_0_, this_.SFZ as SFZ59_0_, this_.XB as XB59_0_, this_.GXRYHZGX as GXRYHZGX59_0_, this_.LGMC as LGMC59_0_, this_.CJSJ as CJSJ59_0_, this_.CS as CS59_0_, this_.XM as XM59_0_, this_.HJDZ as HJDZ59_0_, this_.RZSJ as RZSJ59_0_, this_.TZSJ as TZSJ59_0_, this_.LDZZ as LDZZ59_0_, this_.SSFXJ as SSFXJ59_0_, this_.SSPCS as SSPCS59_0_, this_.GXSJ as GXSJ59_0_, this_.ZTBH as ZTBH59_0_ from ZHCX.ZHCX_GAXX_TFBD_TFGXRLGYGJ this_ where this_.SFZH in (:1, :2, :3) and ROWNUM <= 500 ) where rownum <= :4
是不是这个语句造成的数据库性能问题。
(5)我问了下开发,这个库是OLTP系统,但是没绑定变量。但是出现这样的语句是绑定变量的意思吧, 是系统自己解析的吗?

回复

使用道具 举报

千问 | 2011-11-1 16:25:22 | 显示全部楼层
新手上路,純幫頂
回复

使用道具 举报

千问 | 2011-11-1 16:25:22 | 显示全部楼层
Windows Server 2003 32位 Web版:2G
Windows Server 2003 32/64位 标准版:4G/32G

回复

使用道具 举报

千问 | 2011-11-1 16:25:22 | 显示全部楼层
本帖最后由 suqiansiyang 于 2013-3-13 13:28 编辑
系统是windowsserver200332位的系统。10G的内存。内存调整过了,SGA为8G, 32位的系统sga设置为8G没有任何的意思 根本就用不到这么多的 应该是1.7G但是可以扩张内存的 百度上面搜一下建议升到64bit的系统吧
回复

使用道具 举报

千问 | 2011-11-1 16:25:22 | 显示全部楼层
daizyflower 发表于 2013-3-13 12:55
Windows Server 2003 32位 Web版:2G
Windows Server 2003 32/64位 标准版:4G/32G

恩,我知道了,我的是server版本,那这样的话,我oracle内存最大的使用是4G,如果我讲pga设置为1.8G ,这个设置合适吗?我在报错信息上看到的都是和PGA有关系的。
回复

使用道具 举报

千问 | 2011-11-1 16:25:22 | 显示全部楼层
32位的系统 内存有限制
回复

使用道具 举报

千问 | 2011-11-1 16:25:22 | 显示全部楼层
LZ 你32位系统,系统能认出来10G内存?给oracle分配8G,1.8G我也深表怀疑是真的,你可以看看oracle建议视图,看看建议分配多大内存,具体分配多大根据实际情况定
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行