ORA-04010: the number of values to CACHE must be greater than 1
Cause: the value in the CACHE clause was one
Action: specify NOCACHE, or a value larger than one
错误说明
ORA-04010错误发生时表明,在运行一条Oracle数据库查询语句时,你指定的值缓存参数太小。ORA-04010代表该参数的值应该大于等于2,才能实现值缓存效果。
常见案例
解决方法
在Oracle数据库中,当使用CACHE参数时,你必须确认它的值是大于1的整数。所以,要避免ORA-04010错误,应该把CACHE参数的值设置为至少为2以上,但是建议把它设置得大一些,以获得更好的性能。此外,你也可以在实例中使用参数“_kcmvlc_值”(该参数控制CACHE的允许的最大值)。
当你想取消值缓存(value caching)时,可以使用“NOCACHE”参数,由它来显式禁用缓存:
SELECT * FROM TABLENAME WHERE COL1=XXX AND COL2=YYY CACHE NOCACHE;
此外,你也可以取消掉所有的会话的缓存,可以使用alter session登录到数据库:
ALTER SESSION SET queries_without_cache=TRUE;
最后,你也可以在会话中更改CACHE的值:
ALTER SESSION SET query_cache_size=50;