系统是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系统,但是没绑定变量。但是出现这样的语句是绑定变量的意思吧, 是系统自己解析的吗?
|