专栏首页bisal的个人杂货铺​v$视图存储SQL的bug

​v$视图存储SQL的bug

Oracle中究竟能不能找到执行过的DDL?》曾尝试过找到刚执行过的DDL语句,其实还存在一个隐藏的问题,像这种create table建表语句,是可以在v$sql中找到,但是只存储了20个字符,如下所示,

SQL> select sql_text, length(sql_text) as total from v$sql where sql_text like '%create table%';
SQL_TEXT                 TOTAL
----------------------- -------
create table t01 as         20

这其实是Oracle的一个bug(17982832),而且是在11.2.0.4和12.1.0.1上出现的,可以通过patch或升级到12.2.0.1来解决,按照他所描述的,"CREATE or ALTER table commands became truncated to 20 bytes when viewed in some Vsql.sql_fulltext",create或alter子句,会自动截断到20个字符显示在v

另外,10046看到的SQL,都是截断的,

=====================
PARSING IN CURSOR #140563089936136 len=29 dep=0 uid=38 oct=1 lid=38 tim=1625731955432687 hv=1392146939 ad='6d1b60f8' sqlid='an553699gnygv'
create table t01 as
END OF STMT
PARSE #140563089936136:c=2000,e=11234,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,plh=0,tim=1625731955432686

如果是sql_trace,

SQL> select 'TRACE FILE: '||VALUE FROM V$DIAG_INFO where NAME='Default Trace File';
'TRACEFILE:'||VALUE
--------------------------------------------------------------------------------
TRACE FILE: /u01/app/oracle/diag/rdbms/test/TEST/trace/TEST_ora_19062.trc


SQL> alter session set sql_trace =TRUE;
Session altered.


SQL> create table temp (id number);
Table created.

一样被截断了,

=====================
PARSING IN CURSOR #139769368366856 len=29 dep=0 uid=38 oct=1 lid=38 tim=1625732816772472 hv=1392146939 ad='6d1b60f8' sqlid='an553699gnygv'
create table temp (id number)
END OF STMT
PARSE #139769368366856:c=0,e=328,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,plh=0,tim=1625732816772471
=====================

这是另外一个bug(18705302),同样可以通过patch或升级到12.2.0.1来解决,

下载并在线安装这两个patch,

opatch apply online -connectString TEST:sys:oracle

确认安装完成,

[oracle@bisal 17982832]$ opatch lsinv
...
Interim patches (1) :


Patch (online) 18705302: applied on Thu Jul 08 16:21:42 CST 2021
Unique Patch ID:  19102257
   Created on 6 Jul 2015, 01:39:50 hrs PST8PDT
   Bugs fixed:
     18705302


Patch (online) 17982832: applied on Thu Jul 08 16:03:56 CST 2021
Unique Patch ID:  17805229
   Created on 2 Jul 2014, 04:37:02 hrs PST8PDT
   Bugs fixed:
     17982832

此时无论是v$还是trace中记录的create/alter table就是准确的了。

其实除了以上两个场景,wrh$中同样可能出现截断的情况,还是通过patch或者升级到12.2.0.1解决,看来这种截断性的问题都在12.2中统一解决了,

近期更新的文章:

感悟线上分享

RPO和RTO是什么?

最近碰到的几个问题

Linux的inode是什么?

小白学习MySQL - InnoDB支持optimize table?

文章分类和索引:

《公众号800篇文章分类和索引

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 视图 v$sql,v$sqlarea,$sqltext,v$sqltext_with_newlines 的差异

          视图v$sql,v$sqlarea,v$sqltext,v$sqltext_with_newlines 是几个经常容易混淆的视图,主要是提供libr...

    Leshami
  • 【SQL 基础】游标(curosr)

    也许大家对数据库中游标都不陌生,但对于其概念可能有时又会有些模糊,游标到底是什么? 为了使大家对游标有个清晰的认识,本文将介绍Oracle中游标(curosr)...

    SQLplusDB
  • 查看时间戳类型的绑定变量

    当我们需要找到某条使用绑定变量的SQL语句中具体用到的参数值时,通常会使用v$sql_bind_capture视图,如果是字符串类型的变量,直接检索即可,

    bisal
  • 深入解析:由SQL解析失败看开发与DBA的性能之争

    李华 云和恩墨高级技术顾问 以下案例来自大讲堂的一次分享,从这个案例中我们可以了解“错误的SQL”可能对数据库产生的种种影响。如何找到这些错误的、解析失败的S...

    数据和云
  • 故障分析:一则library cache lock问题处理

    编辑手记:library cache lock 大家都并不陌生,在MOS上对该阻塞的一般成因描述为:一般可以理解的是alter table或者alter pac...

    数据和云
  • 如何“暴力破解”Oracle性能优化的极端问题(附精彩案例解读)

    本期,我们请到云和恩墨性能优化专家 罗海雄 先生,罗老师是一名 Oracle ACE-A,还是ITPUB论坛数据库管理版版主,2012 ITPUB全国SQL大赛...

    数据和云
  • Oracle9i新特性-索引监视及注意事项[修正版]

    Last Updated: Saturday, 2004-12-04 10:28 Eygle

    数据和云01
  • 【重磅推荐】从Library Cache等待事件深入剖析SQL解析

    编辑手记:在很多生产系统中,程序员经意不经意写下的一条SQL都可能带来性能上的巨大隐患,而DBA就要不断在这些问题中出生入死,这些不正确的SQL可能给我们带来哪...

    数据和云
  • 按图索骥:SQL中数据倾斜问题的处理思路与方法

    数据倾斜即表中某个字段的值分布不均匀,比如有100万条记录,其中字段A中有90万都是相同的值。这种情况下,字段A作为过滤条件时,可能会引起一些性能问题。 本文通...

    企鹅号小编
  • 按图索骥:SQL中数据倾斜问题的处理思路与方法

    数据倾斜即表中某个字段的值分布不均匀,比如有100万条记录,其中字段A中有90万都是相同的值。这种情况下,字段A作为过滤条件时,可能会引起一些性能问题。 本文...

    数据和云
  • 【每日一摩斯】-Shared Pool优化和Library Cache Latch冲突优化 (1523934.1)-系列4

    CURSOR_SHARING 参数 (8.1.6 以上)        这个参数需要小心使用。如果它被设为FORCE,那么Oracle会尽可能用系统产生的绑定...

    bisal
  • 案例:如何从SYSTEMSTATE DUMP查看Mutex的持有者和请求者

    根据用户描述,可以判定这是一个故障解决型的问题。针对这种问题,我们需要从现象入手一步一步进行分析。

    SQLplusDB
  • Oracle 数据字典和数据字典视图

    是元数据的集合,从逻辑上和物理上描述了数据库及内容,存储于SYSTEM与SYSAUX表空间内的若干段。

    Leshami
  • 误操作怎么办?试试这个神器-Log Miner

    LogMiner可以用来分析在线/redo日志,也可以用来分析离线日志文件/归档日志,是由一组PL/SQL包和一些动态视图组成,而且是免费的。

    bisal
  • impdp create index parallel-数据泵并行创建索引

    题记:在数据泵导入时默认情况下创建索引是不使用并行的,所以这一步会消耗较长的时间,除了人工写脚本并行创建索引外,数据泵在导入时也可以并行创建索引,本文详细介绍了...

    数据和云
  • exp和expdp几种常见的使用场景操作介绍

    同事前几天问到exp/expdp根据条件导出一张/多张表数据的问题,借此机会,依次对这些需求做个实验,仅供参考。

    bisal
  • SQL SERVER修改函数名引起的问题

    1. 问题 今天遇到一个奇怪的问题:使用sp_helptext XXX查询出来的函数定义名竟然跟函数名不同,而sp_helptext实际是查询sys.all_s...

    逸鹏
  • Oracle 12c系列(三)|存储资源隔离 Flex Diskgroup

    作者 姚崇 出品 沃趣技术 在12cR2版本中,我们可以在一个ASM Diskgroup提供不同的冗余级别和配额给不同的数据库使用。提到Quota会让人...

    沃趣科技
  • Mysql-2

    用户操作与权限管理 MySQL用户操作 创建用户 方法一: CREATE USER语句创建 CREATE USER "用户名"@"IP地址" I...

    用户1214487

扫码关注云+社区

领取腾讯云代金券