• 技术文章 >数据库 >Oracle

    一起聊聊Oracle怎样查询执行计划

    长期闲置长期闲置2022-05-05 21:13:45转载377
    本篇文章给大家带来了关于Oracle的相关知识,其中主要介绍了关于查询执行计划的相关内容,执行计划也叫查询计划,是数据库执行SQL语句的具体步骤和过程,下面一起来看一下,希望对大家有帮助。

    推荐教程:《Oracle视频教程

    执行计划(Execution Plan)也叫查询计划(Query Plan),它是数据库执行SQL语句的具体步骤和过程。SQL查询语句的执行计划主要包括:

    虽然不同数据库对于SQL查询的执行过程采用了不同的实现方式,但是一个查询语句大致需要经过分析器、优化器以及执行器的处理并返回最终结果,同时还可能利用各种缓存来提高访问性能。

    简单来说,一个查询语句从客户端的提交开始,直到服务器返回最终的结果,整个过程大致如图所示。

    首先,客户端提交SQL语句。在此之前客户端必须连接到数据库服务器,图中的连接器就是负责建立和管理客户端连接的组件。

    然后,分析器(解析器)解析SQL语句的各个组成部分,进行语法分析,并检查SQL语句的语法是否符合规范。

    例如,以下语句中的FROM关键字错写成了FORM:

    在这种情况下,所有的数据库管理系统都会返回一个语法错误。

    然后,优化器会利用数据库收集到的统计信息决定SQL语句的最佳执行方式。例如,是通过索引还是通过全表扫描的方式访问单个表,使用什么顺序连接多个表,如何实现数据的排序等。

    优化器是决定查询性能的关键组件,而数据库的统计信息是优化器判断的基础。

    最后,执行器根据优化之后的执行计划调用相应的执行模块来获取数据,并将结果返回客户端。

    执行计划的查看方式

    方法一:语句查看

    在Oracle数据库中,我们同样可以使用EXPLAIN PLAN FOR命令生成执行计划,不过需要执行两条命令:

    EXPLAIN PLAN FOR
    
    SELECT * FROM  T_USER1 t where t.user_name = 'Admin';
    
    SELECT * FROM  TABLE(dbms_xplan.display);

    使用EXPLAIN PLAN FOR命令生成执行计划,并将其存储到系统表PLAN_TABLE中,然后通过一个查询语句显示生成的执行计划。

    其中dbms_xplan.display是一个Oracle系统函数。返回的结果显示,该语句在Oracle中是通过'SYS_C0016771'索引范围扫描来查找数据的。

    方法二:利用工具查看

    在常用的Oracle数据库开发工具PL/SQL中,选择一段SQL脚本,按F5键,即可自动显示该脚本的执行计划信息,跟方法一查询出的结果相同。

    执行过程分析

    参考下面文章:

    在Oracle数据库中,我们可以通过系统表user_indexes和user_ind_columns查询索引以及相关的字段信息。

    SELECT * FROM  user_indexes;
    
    SELECT * FROM  user_ind_columns;

    推荐教程:《Oracle视频教程

    以上就是一起聊聊Oracle怎样查询执行计划的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除
    专题推荐:oracle
    上一篇:oracle between的用法是什么 下一篇:实例详解别名法在Oracle数据库注入中的用法
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 实例详解oracle添加唯一约束• 什么是oracle asm• 什么是oracle awr• oracle有哪些索引• oracle有临时变量吗
    1/1

    PHP中文网