- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
彻底理解SQLPlus系统变量
彻底理解SQL*Plus 系统变量
―――By 木水鱼(Jason Sun) E-mail:sjshjz@
APPI[NFO]{ON|OFF|text}
启用或禁止通过DBMS_APPLICATION_INFO包自动注册当前会话正在执行的模块(命令文件)的名称,或者手工注册模块名称。这可以使DBA能够监视每个模块的性能和资源使用情况。注册的模块的名称保存在V$SESSION视图相应会话的MODULE字段中。注册名称时实际是调用DBMS_APPLICATION_INFO.SET_MODULE存储过程。
[ON]:允许自动注册通过@、@@或START调用的命令文件的名称。
[OFF]:禁止自动注册通过@、@@或START调用的命令文件的名称。
[text]:用来手工设置当前会话正在执行的模块名称。
示例:
SQL set appinfo on
SQL @js2008.sql 模块名将被自动注册
SQL @jz.sql 模块名将被自动注册
当APPINFO为ON时命令文件的名称是自动被注册的。可执行下面两条语句分别查看js2008.sql模块和jz.sql模块的执行情况:
SQL select * from v$sqlarea where module like %js2008.sql;
SQL select * from v$sqlarea where module like %jz.sql;
而当APPINFO为OFF时则不会自动注册命令文件的名称,我们可以手工注册。
SQL set appinfo off
SQL set appinfo js2008 手工注册模块名
SQL @js2008.sql
SQL set appinfo jz 手工注册模块名
SQL @jz.sql
然后执行下面两条语句分别查看js2008.sql模块和jz.sql模块的执行情况:
SQL select * from v$sqlarea where module=js2008;
SQL select * from v$sqlarea where module=jz;
ARRAY[SIZE] {n}
指示SQL*Plus一次从服务器获取多少行的数据。n的默认值是15取值范围是1至5000。当查询返回的数据较多时设置为较大的值可提高效率,但需占用更多的内存。假设ARRAYSIZE设为5,而某条SQL查询将返回100行数据,则SQL*Plus需分20次才能从服务器获取到所有的数据行。如下所示:
创建一个具有100行数据的表,并设置ARRAYSIZE为5:
SQL set autotrace on 使SQL*Plus显示统计信息
SQL create table t_temp as select * from all_objects where rownum101;
SQL set arraysize 5
查询表中所有行
SQL select * from t_temp;
显示的统计信息如下:
0 recursive calls
9 db block gets
26 consistent gets
0 physical reads
0 redo size
15561 bytes sent via SQL*Net to client
2992 bytes received via SQL*Net from client
21 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
100 rows processed
参看统计信息中“SQL*Net roundtrips to/from client”这行数据。它说明了SQL*Plus需分20次从服务器获取所有数据行(加上发起查询的一次共21次)。
SQL set arraysize 100 修改ARRAYSIZE为100
SQL select * from t_temp;
显示统计信息如下:
0 recursive calls
9 db block gets
7 consistent gets
0 physical reads
0 redo size
13262 bytes sent via SQL*Ne
文档评论(0)