同一个功能要求的SQL语句可有不同实现方式,它们之间差别在哪里?
1个回答
展开全部
区别在数据库中生成的语法解析树和执行计划不同。
在数据库中,SQL语句首先会被语法分析解析成语法解析树,此时不同的SQL语句肯定不同,之后语法解析树会被使用关系代数操作替换为逻辑执行计划,每个语法解析树都有对应的逻辑执行计划。数据库会进一步对逻辑执行计划进行优化,产生执行代价小的逻辑执行计划,此时,对于不同的SQL语句,可能优化后的逻辑执行计划是相同的,也可能是不同的。对于逻辑执行计划,数据库会根据统计信息、索引情况,决定逻辑执行计划中每个操作符的物理操作符,以及操作符的执行顺序,生成最终的物理执行计划。不同的SQL语句,一旦生成了不同的物理执行计划,其执行效率将产生很大的差别,也就是获得查询结果的时间差别很大。
在数据库中,SQL语句首先会被语法分析解析成语法解析树,此时不同的SQL语句肯定不同,之后语法解析树会被使用关系代数操作替换为逻辑执行计划,每个语法解析树都有对应的逻辑执行计划。数据库会进一步对逻辑执行计划进行优化,产生执行代价小的逻辑执行计划,此时,对于不同的SQL语句,可能优化后的逻辑执行计划是相同的,也可能是不同的。对于逻辑执行计划,数据库会根据统计信息、索引情况,决定逻辑执行计划中每个操作符的物理操作符,以及操作符的执行顺序,生成最终的物理执行计划。不同的SQL语句,一旦生成了不同的物理执行计划,其执行效率将产生很大的差别,也就是获得查询结果的时间差别很大。
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询