您的位置: 翼速应用 > 业内知识 > 数据库 > 正文

一文带你深入了解Oracle怎样查询执行计划



本文带你深入了解Oracle怎样查询执行计划,执行计划也叫查询计划,是数据库执行SQL语句的具体步骤和过程,详细内容请看本文。


带你深入了解Oracle怎样查询执行计划



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


● 访问表的方式。数据库通过索引或全表扫描等方式访问表中的数据。


● 多表连接的方式。数据库使用什么连接算法实现表的连接,包括多个表的先后访问顺序。


● 分组聚合以及排序等操作的实现方式。


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


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


大致过程图



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


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


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



关键字错写成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;




我来说两句

0 条评论

推荐阅读

  • 响应式布局CSS媒体查询设备像素比介绍

    构建响应式网站布局最常见的是流体网格,灵活调整大小的站点布局技术,确保用户在使用的幕上获得完整的体验。响应式设计如何展示富媒体图像,可以通过以下几种方法。

    admin
  • 提升网站的性能快速加载的实用技巧

    网站速度很重要,快速加载的网站会带来更好的用户体验、更高的转化率、更多的参与度,而且在搜索引擎排名中也扮演重要角色,做SEO,网站硬件是起跑线,如果输在了起跑线,又怎么跟同行竞争。有许多方法可提升网站的性能,有一些技巧可以避免踩坑。

    admin
  • 织梦CMS TAG页找不到标签和实现彩色标签解决方法

    织梦cms是我们常见的网站程序系统的一款,在TAG标签中常常遇到的问题也很多。当我们点击 tags.php 页的某个标签的时候,有时会提示:“系统无此标签,可 能已经移除!” 但是我们检查程序后台,以及前台显示页面。这个标签确实存在,如果解决这个问题那?

    admin
  • HTML关于fieldset标签主要的作用

    在前端开发html页面中常用的标签很多,今天为大家带来的是关于HTML中fieldset标签主要的作用说明,根据技术分析HTML

    admin

精选专题