正如我们所知,Informix 数据库优化器采用基于“成本”优化方式,当接收到用户发出的SQL语句后,Informix优化器要对SQL语句进行编译,根据成本最低的原则生成最终的执行计划进行执行。对于每一个SQL语句,都要进行编译工作,为了提高系统的性能,特别是对具有大量相同SQL语句的系统,Informix从9.2版本开始,就提供了SQL语句高速缓存机制SQL Statement Cache (SSC),将已分析并优化的SQL语句缓存到内存中,以使执行相同SQL语句的多个用户能够实现以下性能改进:
响应时间缩短,原因是绕过了分析和优化步骤
占用的内存量减少,原因是数据库服务器在用户间共享查询数据结构
通过采用SQL语句高速缓存机制,可以大大提高拥有大量相同SQL语句系统的性能。
下图显示数据库服务器如何对多个用户访问SQL语句高速缓存。
图 1. 使用SQL语句高速缓存时的数据库服务器操作
当数据库服务器第一次为用户 1 执行SQL语句时,数据库服务器检查完全一样的SQL语句是否在SQL语句高速缓存中。如果不在高速缓存中,那么数据库服务器分析该语句、确定最优的查询计划并执行该语句。
当用户 2 执行完全一样的SQL语句时,数据库服务器在SQL语句高速缓存中查找该语句而不需要分析和优化该语句。
同样,如果用户 3 和用户 4 执行完全一样的SQL语句,数据库服务器不必分析和优化该语句。相反,它使用内存中SQL语句高速缓存内的分析信息和查询计划。
时间: 2024-10-26 05:48:59