内存限制和大小

尽管数据库服务器尝试清除 SQL 语句高速缓存,但是有时候由于当前整使用条目而不能除去它们。在这种情况下,SQL 语句高速缓存的大小可能会超过 STMT_CACHE_SIZE 配置参数的值。

STMT_CACHE_NOLIMIT 配置参数的缺省值为 1,这表示即使高速缓存的当前大小可能大于 STMT_CACHE_SIZE 参数的值,数据库服务器也会插入该语句。

如果 STMT_CACHE_NOLIMIT 配置参数的值为 0,那么当大小超过 STMT_CACHE_SIZE0 的值时,数据库服务器不会将完全限定的条目或唯一关键字条目插入 SQL 语句高速缓存中。

使用 onstat -g ssc 选项监视 SQL 语句高速缓存的当前大小。查看 onstat -g ssc 输出的以下输出列中的值:
SQL 语句高速缓存已满且用户当前正在执行其中的所有语句时,用户执行的任何新 SQL 语句都会导致 SQL 语句高速缓存增长超过 STMT_CACHE_SIZE 指定的大小。数据库服务器不再使用 SQL 语句高速缓存内的 SQL 语句之后,该服务器将释放 SQL 语句高速缓存中的内存,直至大小达到 STMT_CACHE_SIZE 阈值为止。但是,如果数以千计的用户同时执行几个特定查询,那么 SQL 查询高速缓存会在除去任何语句之前迅猛增长。在这种情况下,可采取以下操作之一:
您可以使用以下一种方法来更改 STMT_CACHE_NOLIMIT 配置参数值: