GaussDB 100 V300R001C00初次引入。
GaussDB 100支持用户在SQL中通过绑定变量的方式简化解析过程,提高执行效率。
变量绑定是指在SQL语句的条件中使用变量而不是常量。比如SQL Pool里有如下两条SQL语句:
select * from table where col=1;
select * from table where col=2;
对GaussDB 100数据库来说这两条语句完全不同,GaussDB 100数据库会根据SQL语句的文本准确匹配每个字符,虽然上述两条SQL只有一个字符不一样,但是无法匹配SQL Pool中已经存在的SQL,所以数据库就会认为这是两条完全不同的语句。对于无法完整匹配的SQL,都需要进行硬解析。
如果将上述SQL改写成select * from table where col=:var1;然后通过对变量var1的赋值去查询,那么这条语句第一次会进行硬解析,以后就只进行匹配软解析并复用SQL Pool中已有信息。假设某条语句被重复执行了很多次,那么使用绑定变量带来的好处是巨大的。一个应用程序如果未使用绑定变量或使用不充分,那么几乎一定会伴随着严重的性能问题。
绑定变量优点是减少硬解析,降低解析带来的CPU的争用和资源开销,节省SQL Pool的内存占用 ,缺点是不能使用直方图,而且SQL优化比较困难。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3156164/ ,如需转载,请注明出处,否则将追究法律责任。