oracle 绑定变量简单说明2
在WHERE条件中使用绑定变量对于性能方面的劣势是,在某些条件下会对查询优化器隐藏重要的信息。事实上,对于查询优化器而言,获取字面值比使用绑定变量更好。使用字面值时,查询优化器总能够做出最接近的估算。
当涉及范围比较谓词(例如基于BETWEEN、大于或小于的比较条件),检查一个值是否在可用值范围之外时(即小于列中存储的最小值或大于列中存储的最大值),或者使用直方图时,情况尤其如此。例如,拿一个1000行数据的表来说,在id列上,所有的整型值都在1(最小值)和1000(最大值)之间。
SELECT count(id),count(DISTINCT id),min(id),max(id)FROM t;