SSC是SQL Statement Cache的简称,又叫做SQL语句缓存。
DBA可以通过onmode -e {on|off|enable|flush} 来打开、启用、清除SSC。
会话端需要设置SSC的环境变量(STMT_CACHE=1)或通过执行SET STATEMENT CACHE ON来请求对SSC的使用。
SSC的相关参数如下:
STMT_CACHE_HITS:该参数设置一条SQL语句完全缓存在STMT中之前,需要在数据库服务器上执行多少次;
STMT_CACHE_SIZE:设置STMT的缓存大小,默认512KB;
STMT_CACHE_NOLIMIT:用于设置SSC使用的缓存是否可以超过STMT_CACHE_SIZE的大小;
STMT_CACHE_NUMPOOL:用来设置多个SSC pool来缓存SQL语句。可以通过onstat -g spi来监控ssc pool的longspins来表示ssc pool是否已经成为瓶颈。
onstat -g ssc pool来监控每个SQL缓存池的大小。
如下类型的SQL语句会被缓存:
1、该语句应该是SELECT、UPDATE、DELETE 和INSERT 这四种语句之一
2、该语句不应包含任何用户定义例程
3、该语句不能包含任何Temporary 或Remote 表
4、该语句不应包含子查询