Trafodion的查询缓存机制涉及到两个CQD,
cqd QUERY_CACHE ‘ON’;
Cqd HYBRID_QUERY_CACHE ‘ON’;
我们可以通过以下方式查看是打开查询缓存,
cqd SHOWCONTROL_SHOW_ALL 'on';
showcontrol default QUERY_CACHE;
showcontrol default HYBRID_QUERY_CACHE;
当前版本中,QUERY_CACHE默认是打开的,而HYBRID_QUERY_CACHE默认是关闭的,这是因为打开HYBRID_QUERY_CACHE可能会有内存泄露的问题。
跟查询缓存相关,Trafodion提供了两张虚拟表,
table(querycacheentries)
table(hybridquerycacheentries)
如,我们可以通过以下SQL命令有哪些SQL语句被缓存,
select num_hits, num_params, cast(substring(text, 1, 200) as char(200 bytes) character set utf8) from table(querycacheentries('user', 'local'));
select num_hits, num_PLiterals, num_NPLiterals from table(hybridquerycacheentries('user', 'local'));
HYBRID QUERY CACHE与DOMAIN CACHE的区别?
Hybrid query cache在parser阶段,可以命中cache并在1~3ms中返回缓存的计划。
Domain cache在binder阶段,命中cache的时候 比Hybrid query cache时间要长,因为需要bind SQL对象的动作,需要花费50~100ms。