数据库优化脚本执行报错

目录

一、执行数据库优化脚本 报错... 3

解决方法:... 4

1、直接注释掉RECYCLE_POOLS 赋值sql语句块... 4

2、手动修改脚本... 5

附录... 6

一、执行数据库优化脚本 报错

AutoParaAdj3.5_dm8.sql

1)manager中报错

 

-20001: 执行失败, -7065 数据未找到 -7065: anonymous block line 188

RECYCLE_POOLS  RECYCLE缓冲区分区数赋值时报错。

 

2)disql中报错: --貌似不准确

 

[-20001]: 执行失败, -7065 数据未找到 -7065: anonymous block line 170

 

解决方法:

1、直接注释掉RECYCLE_POOLS 赋值sql语句块

 

报错:

 

236行

 

注释掉

 

再执行即可!!

2、手动修改脚本

select top 1 rn into RECYCLE_POOLS from t1 where rn <= RECYCLE*1024/3000/(page()/1024) order by 1 desc;

测试 RECYCLE 值最低190才可以为 RECYCLE_POOLS 赋值。

所以要求内存值 v_mem_mb 最低 4750 才可以执行脚本

注:

(仅修改v_mem_mb值不行,必须实际内存超过4750才可以

因为脚本前面会扫描实际内存是否大于v_mem_mb值:

若写的v_mem_mb 的值大于实际内存值,脚本中会重新按实际内存赋值!

SQL调式:在这里重新赋值实际内存3935

 

 

所以实际内存值小于4750的 直接修改 v_mem_mb 无效!!

这里需要将

select top 1 rn into RECYCLE_POOLS from t1 where rn <= RECYCLE*1024/3000/(page()/1024) order by 1 desc;

修改为

select top 1 rn into RECYCLE_POOLS from t1 where rn <= 190*1024/3000/(page()/1024) order by 1 desc;

即可

 

执行成功!!

附录

测试脚本:

create table t (rn int);

declare i int;

begin

for i in 1..100 loop

insert into t values(i);

end loop;

end;

/

create table t1 as

(

select * from t where rn > 1 minus

select

ta.rn * tb.rn

from

t ta,

t tb

where

ta.rn <= tb.rn

and ta.rn > 1

and tb.rn > 1

);

select top 1 rn from t1 where rn <= 190*1024/3000/(page()/1024) order by 1 desc;

 

RECYCLE_POOLS 赋值 2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值