最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

通过设置SQLPLUSARRAYSIZE(行预取)加快SQL返回速度

来源:动视网 责编:小采 时间:2020-11-09 12:01:20
文档

通过设置SQLPLUSARRAYSIZE(行预取)加快SQL返回速度

通过设置SQLPLUSARRAYSIZE(行预取)加快SQL返回速度:有时候你可能会用SQLPLUS spool 表的数据,那么怎么加快spool速度呢?SQLPLUS中有个行预取的选项SQLPLUS中 arraysize默认为15 SQ 有时候你可能会用SQLPLUS spool 表的数据,那么怎么加快spool速度呢?SQLPLUS中有个行预取的选项 SQLPLU
推荐度:
导读通过设置SQLPLUSARRAYSIZE(行预取)加快SQL返回速度:有时候你可能会用SQLPLUS spool 表的数据,那么怎么加快spool速度呢?SQLPLUS中有个行预取的选项SQLPLUS中 arraysize默认为15 SQ 有时候你可能会用SQLPLUS spool 表的数据,那么怎么加快spool速度呢?SQLPLUS中有个行预取的选项 SQLPLU


有时候你可能会用SQLPLUS spool 表的数据,那么怎么加快spool速度呢?SQLPLUS中有个行预取的选项SQLPLUS中 arraysize默认为15 SQ

有时候你可能会用SQLPLUS spool 表的数据,那么怎么加快spool速度呢?SQLPLUS中有个行预取的选项

SQLPLUS中 arraysize默认为15

SQL> show arraysize
arraysize 15

它表示从Oracle服务器端一次只传递15行记录到客户端(SQLPLUS),当然了JDBC,WEBLOGIC也有行预取,,具体自己Google

举个例子:

SQL> select * from test where owner='ADWU_OPTIMA_AP11';

773 rows selected.

Elapsed: 00:00:30.95

Execution Plan
----------------------------------------------------------
Plan hash value: 217508114

--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 593 | 134K| 882 (3)| 00:00:03 |
|* 1 | TABLE ACCESS FULL| TEST | 593 | 134K| 882 (3)| 00:00:03 |
--------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - filter("OWNER"='ADWU_OPTIMA_AP11')


Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
2976 consistent gets
0 physical reads
0 redo size
50484 bytes sent via SQL*Net to client
597 bytes received via SQL*Net from client
53 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
773 rows processed

SQL> set arraysize 5000
SQL> select * from test where owner='ADWU_OPTIMA_AP11';

773 rows selected.

Elapsed: 00:00:16.06

Execution Plan
----------------------------------------------------------
Plan hash value: 217508114

--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 593 | 134K| 882 (3)| 00:00:03 |
|* 1 | TABLE ACCESS FULL| TEST | 593 | 134K| 882 (3)| 00:00:03 |
--------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - filter("OWNER"='ADWU_OPTIMA_AP11')


Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
2927 consistent gets
0 physical reads
0 redo size
47800 bytes sent via SQL*Net to client
241 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
773 rows processed

当设置 arraysize 之后,SQLPLUS 客户端与数据库Server端交互次数明显减少,这就是为什么返回773行数据第二次比第一次快1倍了,同时也可以看到,第二次逻辑读比第一次低了,那说明设置行预取会影响逻辑读。

文档

通过设置SQLPLUSARRAYSIZE(行预取)加快SQL返回速度

通过设置SQLPLUSARRAYSIZE(行预取)加快SQL返回速度:有时候你可能会用SQLPLUS spool 表的数据,那么怎么加快spool速度呢?SQLPLUS中有个行预取的选项SQLPLUS中 arraysize默认为15 SQ 有时候你可能会用SQLPLUS spool 表的数据,那么怎么加快spool速度呢?SQLPLUS中有个行预取的选项 SQLPLU
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top