是否使用绷定变量的一些建议
Posted 张冲andy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否使用绷定变量的一些建议相关的知识,希望对你有一定的参考价值。
1、建议使用绑定变量的列:对于流水号、订单号、用户ID、电话号码、身份证
号码、证件号码等,这类列的特点是列的唯一性较好、列的不同值数量跟表的
数据量比较接近,而这类列涉及的SQL语句往往存在高并发,写成绑定变量会
大大减少数据库的解析成本。
号码、证件号码等,这类列的特点是列的唯一性较好、列的不同值数量跟表的
数据量比较接近,而这类列涉及的SQL语句往往存在高并发,写成绑定变量会
大大减少数据库的解析成本。
2、不建议使用绑定变量的列:能够枚举的列(比如状态类型字段,这部分类型
字段往往不同值较少,一般即使上千万的数据表中该列也只有十多个、几十个
的不同值), 即使不写绑定变量也只会产生极少数的SQL_id,这部分的oracle
解析消耗微乎其微,并且这种类型的列有可能存在倾斜数据,而如果使用绑定
变量,则对于倾斜数据的评估并不准确,可能导致该列无法走索引范围扫描、
或者影响表JOIN阶段驱动表的选择等。
字段往往不同值较少,一般即使上千万的数据表中该列也只有十多个、几十个
的不同值), 即使不写绑定变量也只会产生极少数的SQL_id,这部分的oracle
解析消耗微乎其微,并且这种类型的列有可能存在倾斜数据,而如果使用绑定
变量,则对于倾斜数据的评估并不准确,可能导致该列无法走索引范围扫描、
或者影响表JOIN阶段驱动表的选择等。
以上是关于是否使用绷定变量的一些建议的主要内容,如果未能解决你的问题,请参考以下文章