影响SQLPLUS性能的几个参数

来源:互联网 发布:内地大尺度网络大电影 编辑:程序博客网 时间:2024/04/29 06:05

虽然我们一般关注SQL优化和服务器端的优化,但客户端的性能优化也是其中的一个方面,而且通常我们会忽略这一步,特别是在对大数据量做report的时候,类似每一行少显示一个空格之类的设置也会对整个查询的显示速度和内存消耗也有一个很大的累计效应,Oracle SQLPLUS的官方参考中就有对这方面的叙述,我整理了一下这几个参数如下:

影响SQLPLUS性能的几个参数
COLUMN NOPRINT:
设置列是否显示,当然最好是在查询的SQL中过滤掉不需要显示的列,但如果不能修改SQL,可以使用此方法。
SET APPINFO OFF:
设置APPINFO为ON的时候,SQLPLUS会在每次脚本被调用的时候执行DBMS_APPLICATION_INFO包的函数设置客户端的信息
SET ARRAYSIZE:
设置SQLPLUS从数据库一次读取的数据行数,取值区间为1至5000,此参数提高SQLPLUS性能的有效性依赖于网络吞吐量,同时过大的值会消耗更多的内存,这在服务器上直接执行SQLPLUS时可能影响整体性能
SET DEFINE OFF:
设置不使用替代变量,关闭了替代变量的使用,从而省去了替代变量解析的过程,SQL脚本中将不能使用&或者&&使用替代变量。
SET FLUSH OFF:
设置将输出缓存
SET LINESIZE:
设置一行输出的字符数,使用尽量的少的值可以避免额外的内存分配和内存拷贝
SET LONGCHUNKSIZE:
设置CLOB, LONG, NCLOB 或者 XMLType 类型数据的每次获取增量
SET PAGESIZE:
设置PAGESIZE较小会导致频繁地输出列头,可以设置一个较大的值或者设置为0来禁用列头输出
SET SERVEROUTPUT:
设置SERVEROUTPUT OFF可以禁用DBMS_OUTPUT调用的输出
SET SQLPROMPT:
尽量使用默认的SQLPLUS提示符,即'SQL>',使用非默认提示符将会在每次显示提示符时进行变量替换
SET TAB:
将多个空格输出压缩一个TAB符号
SET TERMOUT:
设置@,@@,start执行脚本之后关闭输出结果至屏幕
SET TRIMOUT ON / SET TRIMSPOOL ON:
设置屏幕/SPOOL是否输出行尾的空格,可以减少获取的数据量,提高效率
UNDEFINE:
使用UNDEFINE删除不需要的替代变量

原创粉丝点击