首页 > 试题广场 >

下面有关sql绑定变量的描述,说法错误的是?

[单选题]
下面有关sql绑定变量的描述,说法错误的是?
  • 绑定变量是指在SQL语句中使用变量,改变变量的值来改变SQL语句的执行结果
  • 使用绑定变量,可以减少SQL语句的解析,能减少数据库引擎消耗在SQL语句解析上的资源
  • 使用绑定变量,提高了编程效率和可靠性,减少访问数据库的次数
  • 使用绑定变量,查询优化器会预估的比字面变量更加真实
目前OceanBase中实现了绑定变量,目的主要是为了编程方便,而不是为了降低生成执行计划的代价。
没使用绑定变量:UPDATE employees SET salay = 150.00 WHERE id = 10000
使用了绑定变量:UPDATE employees SET salay = ? WHERE id = ?
发表于 2016-07-06 08:02:19 回复(0)
D,绑定变量被使用时,查询优化器会忽略其具体值,因此其预估的准确性远不如使用字面量值真实
发表于 2015-07-15 08:34:41 回复(0)
绑定变量是相对文本变量来讲的,所谓文本变量是指在SQL直接书写查询条件,这样的SQL在不同条件下需要反复解析,绑定变量是指使用变量来代替直接书写条件,查询bind value在运行时传递,然后绑定执行。优点是减少硬解析,降低CPU的争用,节省shared_pool ;缺点是不能使用histogram,sql优化比较困难
发表于 2014-10-25 00:26:16 回复(2)
萌头像
减少访问数据库的次数怎么理解
发表于 2016-07-15 17:15:29 回复(4)
怎么减少访问数据库的次数?
发表于 2016-09-13 16:46:43 回复(1)

绑定变量:一种用于在SQL语句中传递参数的方法。

编辑于 2024-01-26 16:36:23 回复(0)
D选项,实际上,查询优化器在处理绑定变量时,通常会使用一些统计信息和启发式规则进行估计,但这并不意味着它比字面变量更真实。对于某些情况,查询优化器可能会根据不同的绑定值生成不同的执行计划,这可能导致估计不够准确。
发表于 2023-11-16 11:36:56 回复(0)
绑定变量变得不那么可靠不那么真实
发表于 2017-09-24 21:44:45 回复(0)
1. 认识绑定变量:

绑定变量是为了减少解析的,比如你有个语句这样
select aaa,bbb from ccc where ddd=eee;
如果经常通过改变eee这个谓词赋值来查询,像如下
select aaa,bbb from ccc where ddd=fff;
select aaa,bbb from ccc where ddd=ggg;
select aaa,bbb from ccc where ddd=hhh;
每条语句都要被数据库解析一次,这样比较浪费资源,如果把eee换成“:1”这样的绑定变量形式,无论ddd后面是什么值,都不需要重复解析

2,什么时候不应该/不必要使用绑定变量

a,如果你用数据仓库,一条大查询一跑几个小时,根本没必要做绑定变量,因为解析消耗微乎其微。

b变量对优化器产生执行计划有很重要的影响的时候:比昂丁变量被使用时,查询优化器会忽略其具体值,因此其预估的准确性远不如使用字面量的值真是,尤其是在表存在数据倾斜的列上会提供错误的执行计划。从而使得非高效的执行计划被使用。

绑定变量在OceanBase中的实现

OceanBase是一个支持海量数据的高性能分布式数据库系统

目前OceanBase中实现了绑定变量,主要目的是为了编程方便,而不是为了降低生成执行计划的代价。

OceanBase目前使用的是一种"静态执行计划",无论什么Query,执行流程都一样OB在前端***ObConnector中实现绑定变量,将用户传入的变量进行to_string()操作,代替sql语句中相应的部分,形成一个完整的SQL。然后这个SQL传递给MS,MS按照标准流程来解析和执行。

发表于 2017-08-19 17:44:34 回复(0)
与文本变量相对应,由于查询优化器会忽略其具体值,故预估还不如字面变量。
编辑于 2016-01-20 15:25:02 回复(0)
B
发表于 2015-01-04 11:05:42 回复(0)