[20181105]再论12c set feedback only.txt

--//前一阵子的测试,链接:http://blog.itpub.net/267265/viewspace-2216290/
--//12CR2 ,增强了set FEEDBACK功能,加入only选项可以禁止输出信息显示,仅仅显示返回几行,有利于dba集中精力调试
--//sql语句,18c还增加返回执行语句的sql_id的功能,简单测试.

--//我一直以为这种功能是针对特定版本的比如仅仅对12c有效,实际上如果你使用12c的客户端连接11g,执行set feedback only应该不支持.
--//通过测试说明问题.

1.环境:
d:\temp>sqlplus scott/[email protected]
SQL*Plus: Release 12.2.0.1.0 Production on 星期一 11月 5 10:47:35 2018
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

[email protected]> @ ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

--//我刚刚在办法环境重新安装12cR2版本.使用sqlplus连接11g.

[email protected]> set feedback only
[email protected]> select * from emp;
     EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------

已选择 14 行。
--//没有多余的显示.

[email protected]> set feedback 6
[email protected]> @ dpc ‘‘ ‘‘
PLAN_TABLE_OUTPUT
-------------------------------------
SQL_ID  a2dk8bdn0ujx7, child number 0
-------------------------------------
select * from emp
Plan hash value: 3956160932
---------------------------------------------------------------------------
| Id  | Operation         | Name | E-Rows |E-Bytes| Cost (%CPU)| E-Time   |
---------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |        |       |     3 (100)|          |
|   1 |  TABLE ACCESS FULL| EMP  |     14 |   532 |     3   (0)| 00:00:01 |
---------------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
   1 - SEL$1 / [email protected]$1

2.补充测试连接的http://blog.itpub.net/267265/viewspace-2216326/特性是否有效:
[email protected]> set history 10
[email protected]> select sysdate from dual ;
SYSDATE
-------------------
2018-11-05 10:51:00

[email protected]> select user from dual ;
USER
------------------------------
SCOTT

[email protected]> history
  1  select sysdate from dual ;
  2  select user from dual ;

--//可以发现一样有效.

[email protected]> variable b number = 20;
[email protected]> select * from dept where deptno = :b ;
    DEPTNO DNAME          LOC
---------- -------------- -------------
        20 RESEARCH       DALLAS

--//这样定义变量也没有问题.

3.最后测试Statement caching:
--//Statement caching有点像软软解析.

[email protected]> @ spid
       SID    SERIAL# PROCESS                  SERVER    SPID       PID  P_SERIAL# C50
---------- ---------- ------------------------ --------- ------ ------- ---------- ----------------------------------------------
        41          7 5512:516                 DEDICATED 62921       27          3 alter system kill session ‘41,7‘ immediate;
variable b number = 20;
Select * from dept where deptno = :b ;
Select * from dept where deptno = :b ;

--//通过查询执行计划,确定sql_id=2b073tss4h1f3.

[email protected]> select sql_id,executions,parse_calls,sql_text from v$sql where sql_id=‘2b073tss4h1f3‘;
SQL_ID        EXECUTIONS PARSE_CALLS SQL_TEXT
------------- ---------- ----------- ------------------------------------------------------------
2b073tss4h1f3          2           2 Select * from dept where deptno = :b

--//执行2次,分析2次.
--//如果采用Statement caching
--//sesson 1:

set statementcache 100
variable c number = 10;
select * from dept where deptno = :c ;
select * from dept where deptno = :c ;
select sysdate from dual;
--//通过查询执行计划,确定sql_id=‘abzxwsyzmsu8h‘,另外打开会话:

--//sesson 2:
[email protected]> select sql_id,executions,parse_calls,sql_text from v$sql where sql_id=‘abzxwsyzmsu8h‘;
SQL_ID        EXECUTIONS PARSE_CALLS SQL_TEXT
------------- ---------- ----------- ------------------------------------------------------------
abzxwsyzmsu8h          2           1 select * from dept where deptno = :c
--//执行2次,分析1次.

[email protected]> @ sharepool/shp4 abzxwsyzmsu8h 0
TEXT           KGLHDADR         KGLHDPAR         C40                                        KGLHDLMD   KGLHDPMD   KGLHDIVC KGLOBHD0         KGLOBHD6           KGLOBHS0   KGLOBHS6   KGLOBT16   N0_6_16        N20   KGLNAHSH KGLOBT03        KGLOBT09
-------------- ---------------- ---------------- ---------------------------------------- ---------- ---------- ---------- ---------------- ---------------- ---------- ---------- ---------- --------- ---------- ---------- ------------- ----------
子游标句柄地址 000000007E344808 000000007E0F7020 select * from dept where deptno = :c              1          0          0 000000007E373578 000000007C5D06C8       8600      12144       3086     23830      23830 3208407312 abzxwsyzmsu8h          0
父游标句柄地址 000000007E0F7020 000000007E0F7020 select * from dept where deptno = :c              1          0          0 000000007E33C8A8 00                     4720          0          0      4720       4720 3208407312 abzxwsyzmsu8h      65535

--//KGLHDLMD=1.session 1最后执行的是select sysdate from dual;

[email protected]> select * from v$open_cursor where sql_id=‘abzxwsyzmsu8h‘;
SADDR            SID USER_NAME ADDRESS          HASH_VALUE SQL_ID        SQL_TEXT                             LAST_SQL_ACTIVE_TIM SQL_EXEC_ID CURSOR_TYPE
---------------- --- --------- ---------------- ---------- ------------- ------------------------------------ ------------------- ----------- -----------
000000008631DDF0  41 SCOTT     000000007E0F7020 3208407312 abzxwsyzmsu8h select * from dept where deptno = :c                                 OPEN
--//可以发现光标状态已经是open,仅仅执行2次.

--//session 1:
[email protected]> variable c number = 30;
[email protected]> select * from dept where deptno = :c ;
    DEPTNO DNAME          LOC
---------- -------------- -------------
        30 SALES          CHICAGO

[email protected]> select sql_id,executions,parse_calls,sql_text from v$sql where sql_id=‘abzxwsyzmsu8h‘;
SQL_ID        EXECUTIONS PARSE_CALLS SQL_TEXT
------------- ---------- ----------- ------------------------------------------------------------
abzxwsyzmsu8h          3           1 select * from dept where deptno = :c
--//执行3次,分析1次.

4.支持CSV数据格式显示:
[email protected]> set markup csv on
[email protected]> select * from emp ;
"EMPNO","ENAME","JOB","MGR","HIREDATE","SAL","COMM","DEPTNO"
7369,"SMITH","CLERK",7902,"1980-12-17 00:00:00",800,,20
7499,"ALLEN","SALESMAN",7698,"1981-02-20 00:00:00",1600,300,30
7521,"WARD","SALESMAN",7698,"1981-02-22 00:00:00",1250,500,30
7566,"JONES","MANAGER",7839,"1981-04-02 00:00:00",2975,,20
7654,"MARTIN","SALESMAN",7698,"1981-09-28 00:00:00",1250,1400,30
7698,"BLAKE","MANAGER",7839,"1981-05-01 00:00:00",2850,,30
7782,"CLARK","MANAGER",7839,"1981-06-09 00:00:00",2450,,10
7788,"SCOTT","ANALYST",7566,"1987-04-19 00:00:00",3000,,20
7839,"KING","PRESIDENT",,"1981-11-17 00:00:00",5000,,10
7844,"TURNER","SALESMAN",7698,"1981-09-08 00:00:00",1500,0,30
7876,"ADAMS","CLERK",7788,"1987-05-23 00:00:00",1100,,20
7900,"JAMES","CLERK",7698,"1981-12-03 00:00:00",950,,30
7902,"FORD","ANALYST",7566,"1981-12-03 00:00:00",3000,,20
7934,"MILLER","CLERK",7782,"1982-01-23 00:00:00",1300,,10
已选择 14 行。

--//ok.剩下的不在测试了,剩下大家自行测试.

set markup csv on delimiter ‘|‘
select * from dept;

set markup csv on delimiter ‘|‘ quote off
select * from dept;

set markup csv off
select * from dept;

5.看来自己以前感觉错误,sqlplus的特性与oracle版本无关,你只要安装12cR2版本的client端,就可以使用新版本的sqlplus的特性.
  也说明一点,做事情不能评感觉,还是以测试为准,当然理论的理解也很重要.

原文地址:https://www.cnblogs.com/lfree/p/9908316.html

时间: 2024-08-02 00:30:44

[20181105]再论12c set feedback only.txt的相关文章

[20170603]12c Top Frequency histogram.txt

---恢复内容开始--- --//个人对直方图了解很少,以前2种直方图类型对于目前的许多应用来讲已经足够,或者讲遇到的问题很少.--//抽一点点时间,简单探究12c Top Frequency histogram. --//以前的频率直方图Frequency histogram,受限bucket(桶的大小),如果有255个不同值,oracle分析后不会建立频率直方图,而是建立高--//度直方图.这样的情况会导致一些流行值的统计在显示执行计划时差距很大.而12c引入了Top Frequency h

[20181015]12C SQL Translation Framework.txt

--//12c提供一个dba改写sql语句的可能性,实际上10g,11g之前也有一个包DBMS_ADVANCED_REWRITE能实现类似的功能.--//这种功能实在是一种旁门左道,还是测试看看. --//不过如果程序存在大量的执行错误,一样会影响性能,导致出现SQL*Net break/reset to client.--//参考连接:0624使用10035事件跟踪无法执行的sql语句 =>http://blog.itpub.net/267265/viewspace-2120884/--//h

Word,PDF,PPT,TXT之间的转换方法(好东西,以后整理课件就不会那么麻烦了。。。

一.把PPT转WORD形式的方法 1.利用"大纲"视图 打开PPT演示文稿,单击"大纲",在左侧"幻灯片/大纲"任务窗格的"大纲"选项卡里单击一下鼠标,按"Ctrl+A"组合健全选内容,然后使用"Ctrl+C"组合键或右键单击在快捷菜单中选择"复制"命令,然后粘贴到Word里. 提示:这种方法会把原来幻灯片中的行标.各种符号原封不动的复制下来. 2.利用"发

浅试txt文件与xml文件互相转换

最近遇到了txt文件和xml文件互相转换的问题,于是自己写了写,不算深,只是简单的互相转换,下面把代码共享一下,欢迎大家指点. 先看结果: 这是数据表里面查询出来的  select * from 表名 将数据表导出到txt文件中: 将上述的txt文件转换成xml文件: 由于屏幕截图问题,一个屏没截完整,最后没问题的. 又将xml文件转换成txt文件 : 第一步:获得txt文件数据源,首先找一个数据表把里面的数据导出到txt文件中,以逗号隔开.如下: 配置文件和读取数据类就不多说了,默认的 . 从

Word,PDF,PPT,TXT之间的转换方法

来源: 刘波的日志 一.把PPT转WORD形式的方法 1.利用"大纲"视图 打开PPT演示文稿,单击"大纲",在左侧"幻灯片/大纲”任务窗格的“大纲”选项卡里单击一下鼠标,按"Ctrl+A"组合健全选内容,然后使用"Ctrl+C"组合键或右键单击在快捷菜单中选择"复制"命令,然后粘贴到Word里. 提示:这种方法会把原来幻灯片中的行标.各种符号原封不动的复制下来. 2.利用"发送&quo

阿里百川HotFix1.3.3初体验

先来说说它适用的场景及一些局限性: 首先,它是一个热修复的解决方案,可以紧急修复我们的线上bug,并且针对于第一次加载补丁的时候,它是及时生效的,并且集成起来相对简单,这是它的优点. 当然,它的局限性也是显而易见的: 1.只能修改方法体内部: public static void test(Context context) { //旧代码 //Toast.makeText(context.getApplicationContext(), "It's a Bug", Toast.LENG

CAFFE学习笔记(四)将自己的jpg数据转成lmdb格式

1 引言 1-1 以example_mnist为例,如何加载属于自己的测试集? 首先抛出一个问题:在example_mnist这个例子中,测试集是人家给好了的.那么如果我们想自己试着手写几个数字然后验证识别效果又当如何呢? 观察CAFFE_ROOT/examples/mnist/下的lenet_train_test.prototxt文件,发现里面既给出了训练集的路径,又给出了测试集的路径.因此答案很显然了,我们可以把自己的测试集做成leveldb(或lmdb)格式的,然后在lenet_train

Java文件上传

本文转载自 文件上传与 Angular 最近项目需要使用 Angular,对于初学 Angular 的我只能硬着头皮上了,项目中有一个需求是文件上传,磕磕绊绊之下也实现了,将实现过程中学习到的一些知识记录下来以备将来查阅. 与表单数据编码相关的知识 通常,我们使用 HTML 的标签 <form> 来为用户输入创建一个表单,使用 <input type="file"> 作为文件上传的控件. 要将表单的数据发送给后台,不仅要通过指定 <form> 的属性

linux open()文件操作

python程序中经常用到的读文件: f = open("___", 'r') for line in f:#这里每次读取文件的一行,line为字符串,串尾包括了'\n'!!!     print line f.close() 转自:http://www.jb51.net/article/58002.htm 1. open()语法 open(file[, mode[, buffering[, encoding[, errors[, newline[, closefd=True]]]]]