新建
上传
首页
助手
最?/div>
资料?/div>
工具

Oracle 

执行计划

 

1

,什么是执行计划

 

所谓执行计划,顾名思义,就是对一个查询任务,做出一份怎样去完成任务的

详细方案。举个生活中的例子,我从珠海要去英国,我可以

 

选择先去香港然后转机,也可以先去北京转机,或者去广州也可以。但是到?/p>

怎样去英国划算,也就是我的费用最少,这是一件值得考究

 

的事情。同样对于查询而言,我们提交的

SQL

仅仅是描述出了我们的目的地是

英国,但至于怎么去,通常我们?/p>

SQL

中是没有给出提示信息

 

的,是由数据库来决定的?/p>

 

 

 

我们先简单的看一个执行计划的对比?/p>

 

 

 

SQL> set autotrace traceonly 

 

 

执行计划一?/p>

 

 

 

SQL> select count(*) from t;  

 

 

COUNT(*)  

 

 

----------  

 

 

24815  

 

 

Execution Plan  

 

 

0 

 

 

SELECT STATEMENT Optimizer=CHOOSE  

 

 

1 

 

0 

 SORT (AGGREGATE)  

 

 

2 

 

1 

 

 TABLE Access (FULL) OF 'T' 

 

 

执行计划二:

 

 

 

SQL> select count(*) from t;  

 

 

COUNT(*)  

 

 

24815  

 

 

Execution Plan  

 

 

0 

 

 

SELECT STATEMENT Optimizer=CHOOSE (Cost=26 Card=1)  

 

 

1 

 

0 

 SORT (AGGREGATE)  

 

 

2 

 

1 

 

 INDEX (FULL SCAN) OF 'T_INDEX' (NON-UNIQUE) (Cost=26 C

ard=28180) 

 

 

这两个执行计划中,第一个表示求和是通过进行全表扫描来做的,把整?/p>

表中数据读入内存来逐条累加

;

第二个表示根据表中索引,?/p>

 

整个索引读进内存来逐条累加,而不用去读表中的数据。但是这两种方式到底

哪种快呢

?

通常来说可能二比一快,但也不是绝对的。这是一

 

Ͼλ
新建
上传
首页
助手
最?/div>
资料?/div>
工具

Oracle 

执行计划

 

1

,什么是执行计划

 

所谓执行计划,顾名思义,就是对一个查询任务,做出一份怎样去完成任务的

详细方案。举个生活中的例子,我从珠海要去英国,我可以

 

选择先去香港然后转机,也可以先去北京转机,或者去广州也可以。但是到?/p>

怎样去英国划算,也就是我的费用最少,这是一件值得考究

 

的事情。同样对于查询而言,我们提交的

SQL

仅仅是描述出了我们的目的地是

英国,但至于怎么去,通常我们?/p>

SQL

中是没有给出提示信息

 

的,是由数据库来决定的?/p>

 

 

 

我们先简单的看一个执行计划的对比?/p>

 

 

 

SQL> set autotrace traceonly 

 

 

执行计划一?/p>

 

 

 

SQL> select count(*) from t;  

 

 

COUNT(*)  

 

 

----------  

 

 

24815  

 

 

Execution Plan  

 

 

0 

 

 

SELECT STATEMENT Optimizer=CHOOSE  

 

 

1 

 

0 

 SORT (AGGREGATE)  

 

 

2 

 

1 

 

 TABLE Access (FULL) OF 'T' 

 

 

执行计划二:

 

 

 

SQL> select count(*) from t;  

 

 

COUNT(*)  

 

 

24815  

 

 

Execution Plan  

 

 

0 

 

 

SELECT STATEMENT Optimizer=CHOOSE (Cost=26 Card=1)  

 

 

1 

 

0 

 SORT (AGGREGATE)  

 

 

2 

 

1 

 

 INDEX (FULL SCAN) OF 'T_INDEX' (NON-UNIQUE) (Cost=26 C

ard=28180) 

 

 

这两个执行计划中,第一个表示求和是通过进行全表扫描来做的,把整?/p>

表中数据读入内存来逐条累加

;

第二个表示根据表中索引,?/p>

 

整个索引读进内存来逐条累加,而不用去读表中的数据。但是这两种方式到底

哪种快呢

?

通常来说可能二比一快,但也不是绝对的。这是一

 

">
新建
上传
首页
助手
最?/div>
资料?/div>
工具

Oracle 

执行计划

 

1

,什么是执行计划

 

所谓执行计划,顾名思义,就是对一个查询任务,做出一份怎样去完成任务的

详细方案。举个生活中的例子,我从珠海要去英国,我可以

 

选择先去香港然后转机,也可以先去北京转机,或者去广州也可以。但是到?/p>

怎样去英国划算,也就是我的费用最少,这是一件值得考究

 

的事情。同样对于查询而言,我们提交的

SQL

仅仅是描述出了我们的目的地是

英国,但至于怎么去,通常我们?/p>

SQL

中是没有给出提示信息

 

的,是由数据库来决定的?/p>

 

 

 

我们先简单的看一个执行计划的对比?/p>

 

 

 

SQL> set autotrace traceonly 

 

 

执行计划一?/p>

 

 

 

SQL> select count(*) from t;  

 

 

COUNT(*)  

 

 

----------  

 

 

24815  

 

 

Execution Plan  

 

 

0 

 

 

SELECT STATEMENT Optimizer=CHOOSE  

 

 

1 

 

0 

 SORT (AGGREGATE)  

 

 

2 

 

1 

 

 TABLE Access (FULL) OF 'T' 

 

 

执行计划二:

 

 

 

SQL> select count(*) from t;  

 

 

COUNT(*)  

 

 

24815  

 

 

Execution Plan  

 

 

0 

 

 

SELECT STATEMENT Optimizer=CHOOSE (Cost=26 Card=1)  

 

 

1 

 

0 

 SORT (AGGREGATE)  

 

 

2 

 

1 

 

 INDEX (FULL SCAN) OF 'T_INDEX' (NON-UNIQUE) (Cost=26 C

ard=28180) 

 

 

这两个执行计划中,第一个表示求和是通过进行全表扫描来做的,把整?/p>

表中数据读入内存来逐条累加

;

第二个表示根据表中索引,?/p>

 

整个索引读进内存来逐条累加,而不用去读表中的数据。但是这两种方式到底

哪种快呢

?

通常来说可能二比一快,但也不是绝对的。这是一

 

Ͼλ">
Ͼλ
Ŀ

ORACLE中的执行计划 - 百度文库
新建
上传
首页
助手
最?/div>
资料?/div>
工具

Oracle 

执行计划

 

1

,什么是执行计划

 

所谓执行计划,顾名思义,就是对一个查询任务,做出一份怎样去完成任务的

详细方案。举个生活中的例子,我从珠海要去英国,我可以

 

选择先去香港然后转机,也可以先去北京转机,或者去广州也可以。但是到?/p>

怎样去英国划算,也就是我的费用最少,这是一件值得考究

 

的事情。同样对于查询而言,我们提交的

SQL

仅仅是描述出了我们的目的地是

英国,但至于怎么去,通常我们?/p>

SQL

中是没有给出提示信息

 

的,是由数据库来决定的?/p>

 

 

 

我们先简单的看一个执行计划的对比?/p>

 

 

 

SQL> set autotrace traceonly 

 

 

执行计划一?/p>

 

 

 

SQL> select count(*) from t;  

 

 

COUNT(*)  

 

 

----------  

 

 

24815  

 

 

Execution Plan  

 

 

0 

 

 

SELECT STATEMENT Optimizer=CHOOSE  

 

 

1 

 

0 

 SORT (AGGREGATE)  

 

 

2 

 

1 

 

 TABLE Access (FULL) OF 'T' 

 

 

执行计划二:

 

 

 

SQL> select count(*) from t;  

 

 

COUNT(*)  

 

 

24815  

 

 

Execution Plan  

 

 

0 

 

 

SELECT STATEMENT Optimizer=CHOOSE (Cost=26 Card=1)  

 

 

1 

 

0 

 SORT (AGGREGATE)  

 

 

2 

 

1 

 

 INDEX (FULL SCAN) OF 'T_INDEX' (NON-UNIQUE) (Cost=26 C

ard=28180) 

 

 

这两个执行计划中,第一个表示求和是通过进行全表扫描来做的,把整?/p>

表中数据读入内存来逐条累加

;

第二个表示根据表中索引,?/p>

 

整个索引读进内存来逐条累加,而不用去读表中的数据。但是这两种方式到底

哪种快呢

?

通常来说可能二比一快,但也不是绝对的。这是一

 



ļ׺.doc޸Ϊ.docĶ

  • ҾݿҵӪƹ߻
  • ҾݿҵӪƹ߻
  • 2019ꡰ䰮,ȫһۺѧϰ⼰-wordģ (1
  • عܵʩ
  • ͨ¾ɶԱȱ(WORDְ)
  • dz̸·ķױʩ
  • Ӣݽʮ󾭵͸
  • Сѧľϰ()
  • ۱2016ʡвģ(弾)𰸽
  • 2015-2020йѵҵг뷢չǰо - ͼ

վ

԰ Ͼλ
ϵͷ779662525#qq.com(#滻Ϊ@)