1、书写顺序和执行顺序
在Oracle SQL中,查询的书写顺序和执行顺序是不同的。
1.1SQL书写顺序如下:
1.2 SQL执行顺序
注意,虽然SELECT在书写顺序中处于第一位,但在执行顺序中却是倒数第二个,因为只有在前面的步骤都完成之后,才能知道要返回哪些列。
1.3 Oracle数据库执行SQL语句的步骤
Oracle数据库执行SQL语句的步骤主要包括以下几个阶段:
其中,解析、优化和行源生成三个阶段通常被合称为“编译”,而执行和获取两个阶段通常被合称为“运行”。
注意,这个过程可以通过数据库中的一些机制(如语句缓存、绑定变量等)来进行优化,以减少编译时间并提高查询执行的效率。
2、 优化Oracle数据库查询SQL
2.1 使用索引
2.2 避免全表扫描
2.3 减少连接操作
2.4 使用EXPLAIN PLAN
2.4.1 执行计划的常用列字段解释:
2.4.2.执行顺序:
2.4.3 检索方式:
1.TABLE ACCESS BY … 即描述的是该动作执行时表访问(或者说Oracle访问数据)的方式(非全部):
a.TABLE ACCESS FULL(全表扫描):
b.ABLE ACCESS BY ROWID(通过ROWID的表存取):
c.TABLE ACCESS BY INDEX SCAN(索引扫描):
d.TABLE ACCESS BY INDEX ROWID BATCHED:
The BATCHED access shown in Step 1 means that the database retrieves a few rowids from the index, and then attempts to access rows in block order to improve the clustering and reduce the number of times that the database must access a block.
2.4.4 索引扫描延伸
(a)INDEX UNIQUE SCAN(索引唯一扫描)
(b)INDEX RANGE SCAN(索引范围扫描)
(c)INDEX FULL SCAN(索引全扫描)
(d)INDEX FAST FULL SCAN(索引快速扫描)
(e)INDEX SKIP SCAN(索引跳跃扫描)
—————-分区表扫描方式———————–
PARTITION RANGE ALL 扫描所有分区
PARTITION RANGE ITERATOR 扫描部分分区
PARTITION RANGE SINGLE 扫描单个分区
2.5 合理使用子查询和连接
2.6 使用分区
2.7 调整数据库参数
2.8 避免频繁提交
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。