实用命令--检查数据库中全表扫描和Fast Full Index 扫描的sql
概述
很多时候我们在做优化的时候总会判断是不是全表扫描,看是不是需要建立索引,下面介绍怎么找出执行全表扫描或者 Fast Full Index 扫描的 SQL 语句,判断这些扫描是否是必要的,是否导致了比较差的执行计划,如果是,则需要调整这些 SQL 语句。
思路:从 Oracle 9i 开始提供了一个视图 v$sql_plan,可以很快地帮助我们找到那些全表扫描或Fast Full Index 扫描的 SQL 语句,这个视图会自动忽略关于数据字典的 SQL 语句。
查找全表扫描的 SQL 语句
使用FTS的前提条件:在较大的表上不建议使用全表扫描,除非取出数据的比较多,超过总量的5% – 10%,或你想使用并行查询功能时。
select sql_text from v$sqltext t, v$sql_plan p where t.hash_value=p.hash_value and p.operation='TABLE ACCESS' and p.options='FULL' order by p.hash_value, t.piece;
查找 Fast Full Index 扫描的 SQL 语句:
索引快速全扫描(INDEX FAST FULL SCAN)和索引全扫描(INDEX FULL SCAN)极为类似,它也适用于所有类型的B树索引(包括唯一性索引和非唯一性索引)。和索引全扫描一样,索引快速全扫描也需要扫描目标索引所有叶子块的所有索引行。
select sql_text from v$sqltext t, v$sql_plan p where t.hash_value=p.hash_value and p.operation='INDEX' and p.options='FULL SCAN' order by p.hash_value, t.piece;
今天主要介绍怎么去查找数据库里面的全表扫描或Fast Full Index 扫描的 SQL 语句,后面再对FTS、index fast full scan、index full scan等等做个区别解释,感兴趣的朋友可以关注下!!
相关推荐
83520298 2020-05-09
yegen00 2020-05-08
Cypress 2020-01-12
liangston 2017-02-28
windows2015 2015-09-23
89226436 2015-06-01
zestroly 2011-01-10
combine 2016-06-15
ifwinds 2019-06-30
Samurai 2019-06-30
芋头 2019-06-29
us0 2019-06-28
me 2019-06-28
了缺 2019-06-27
白日强 2019-06-27
CSDNA 2019-06-20
sherpahu 2019-05-22
阳光非宅男 2017-01-23
云计算架构 2017-11-17