随笔分类 - Oracle
摘要:Oracle通过DBLINK执行SQL后本地SQL不同 打个比方简单的描述下,在数据库A执行如下SQL: insert into t@zkm select * from t; SQL往远程表t@zkm插入数据。 本地表T和远程表T的表结构均如下: Name Null? Type ID NUMBER(
阅读全文
摘要:Oracle 颠覆认知的无函数处理限定条件字段也可以用上函数索引(2) 以前遇到过一次:Oracle 颠覆认知的无函数处理限定条件字段也可以用上函数索引 现在遇到了新的情况:nvl函数处理的可以用上普通索引。 SQL语句如下: SELECT A.*, A."ROWID" FROM X_XXXXXXX
阅读全文
摘要:Oracle sqlplus的Copy比对CTAS以及普通insert测试 版本:11.2.0.4.0 随意创建一张测试表,信息如下: 11:16:45 ZKM@xxxxxxx1(479)> select segment_name,segment_type,bytes/1024/1024 mb fr
阅读全文
摘要:Oracle官方提供清理侦听器日志的4种方式 侦听器日志,例如: [root@dev-testdb trace]# ll /u01/app/grid/diag/tnslsnr/dev-testdb/listener/trace/listener.log -rw-r 1 grid oinstall 1
阅读全文
摘要:Oracle使用Online子句创建索引报错ORA-01450: maximum key length (3215) exceeded 版本:11.2.0.4.0 生产有一张表使用online方式创建索引的时候报错,如下: SQL> create index idx_name on test(nam
阅读全文
摘要:Oracle ADG备库的2节点查询wrong result问题 应用组的向我反馈了一个很奇葩的问题。 在备库查询同样的SQL,结果和主库不一样。如下: 19:56:19 SYS@xxxxxx2(483)> select * from user.tablename t where t.seqse_n
阅读全文
摘要:Oracle DML操作时索引不会维护空值(NULL) 如果一个字段有索引,以insert为例,插入时候字段的值为NULL,不会维护该字段的索引。 create table zkm.test (id int); create index zkm.idx_id on zkm.test(id); beg
阅读全文
摘要:Oracle NESTED LOOPS ANTI/SEMI被驱动表的执行次数探究 正常的NL中,被驱动表的执行次数为驱动表的结果集行数。 对于NESTED LOOPS ANTI/SEMI的反连接和半连接,从探究实验的结果看,被驱动表的执行次数为驱动表的连接条件的去重后的值。 具体看如下测试。 创建测
阅读全文
摘要:Oracle中"TABLE ACCESS FULL"的”欺骗时刻“ 基础表信息 缓存前提下,全表扫描表zkmbak需要1.69s,约229000个逻辑读。 14:53:18 ZKM@dev-app73/pdb(400)> select count(*) from zkmbak; COUNT(*) 1
阅读全文
摘要:Oracle如何查询会话并行度 需要定位到会话的SID值。 自己发起的会话可在一开始使用如下语句查询。 select userenv('sid') from dual; 并行度可通过如下SQL查询: SELECT * from gv$px_session pxs where pxs.qcsid||p
阅读全文
摘要:Oracle关于12C新特性In-Memory踩坑历程 关于In-Memory的介绍网上比较多,这里列出一些刚学习踩到的一些坑。 和ClickHouse的表采用列式存储不同,Oracle的In-Memory(DBIM)特性还是按照行来存储的,只不过专门开辟一块内存区域作为纯列式存储(大小由INMEM
阅读全文
摘要:Oracle手工增加排序区避免SQL使用临时表空间排序产生物理IO 背景 最近公司有个项目需要用到ClickHouse,表是使用列式存储形式的。 对于基本静态的数据或者DML速度要求不高,同时涉及大批量数据集统计的操作相比Oracle来说运行速度大大大幅度提升。 由于Oracle 12C以后开始推出
阅读全文
摘要:Oracle "HASH GROUP BY"和"SORT GROUP BY"区别以及"无法使用"HASH GROUP BY"的情况 10G以前GROUP BY子句可以返回排序的结果集,即使没有ORDER BY子句。 原因是因为使用了“SORT GROUP BY”,会自动排序分组字段。 从10G开始以
阅读全文
摘要:Oracle19C关于参数sec_case_sensitive_logon控制密码大小写敏感问题 该参数在Oracle11G开始推出,目的是为了控制密码大小写敏感问题,可以无需重启数据库实例的情况下设置后直接生效。 如果sec_case_sensitive_logon=true表示区分大小写,这个是
阅读全文
摘要:Oracle使用SPM对含有绑定变量SQL做固定的方法 一般SPM固定如果目标SQL没有绑定变量,那么直接对目标SQL添加HINT然后产生的执行计划用SPM来“偷天换日”。 如果是含有绑定变量,这里有两种情况。 情况1:select * from t where t.id=:A; 这种情况可以使用定
阅读全文
摘要:Oracle Hint no_merge(merge)、no_unnest(unnest)的作用对象陷阱 Oracle的查询转换中有两个概念,子查询展开和视图合并。 关于两者的概念这里不赘述,可以看看崔华的《基于Oracle的SQL优化》这本书。 其中,no_unnest(unnest)这个Hint
阅读全文
摘要:Oracle全表扫描导致的direct path read第一次慢第二次以后变快 发现一个有趣的问题,表zkm.zkm_nocompress是我创建的一张测试表,表上没有任何索引。 有SQL语句:select count(*) from zkm.zkm_nocompress,执行的话理所当然就是走全
阅读全文
摘要:Oracle OEM13C添加主机监控遇到一些问题汇总 想通过OEM监控主机,即OS的信息。 OS可以是Nginx、Redis等非Oracle产品的服务器。 现在记录下遇到的一些问题。 PS:报错的时候如果直观从网页控制台看不出问题所在,记得仔细看OMS的日志信息。另外目标端也有日志可以参考。 问题
阅读全文
摘要:Oracle通过Rman的"copy datafile"转移数据文件后不要使用sqlplus来重命名文件位置和文件名 如果在RAC中将表空间文件创建到了本地后, 使用 RMAN COPY 命令将数据库从文件系统复制到 ASM 存储。 其中,复制是通过 RMAN 完成的,但数据库文件的重命名是通过 S
阅读全文