同一个功能要求的SQL语句可有不同实现方式,它们之间差别在哪里?
展开全部
区别在数据库中生成的语法解析树和执行计划不同。
在数据库中,SQL语句首先会被语法分析解析成语法解析树,此时不同的SQL语句肯定不同,之后语法解析树会被使用关系代数操作替换为逻辑执行计划,每个语法解析树都有对应的逻辑执行计划。数据库会进一步对逻辑执行计划进行优化,产生执行代价小的逻辑执行计划,此时,对于不同的SQL语句,可能优化后的逻辑执行计划是相同的,也可能是不同的。对于逻辑执行计划,数据库会根据统计信息、索引情况,决定逻辑执行计划中每个操作符的物理操作符,以及操作符的执行顺序,生成最终的物理执行计划。不同的SQL语句,一旦生成了不同的物理执行计划,其执行效率将产生很大的差别,也就是获得查询结果的时间差别很大。
在数据库中,SQL语句首先会被语法分析解析成语法解析树,此时不同的SQL语句肯定不同,之后语法解析树会被使用关系代数操作替换为逻辑执行计划,每个语法解析树都有对应的逻辑执行计划。数据库会进一步对逻辑执行计划进行优化,产生执行代价小的逻辑执行计划,此时,对于不同的SQL语句,可能优化后的逻辑执行计划是相同的,也可能是不同的。对于逻辑执行计划,数据库会根据统计信息、索引情况,决定逻辑执行计划中每个操作符的物理操作符,以及操作符的执行顺序,生成最终的物理执行计划。不同的SQL语句,一旦生成了不同的物理执行计划,其执行效率将产生很大的差别,也就是获得查询结果的时间差别很大。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |