随笔分类 - Oracle
摘要:达梦不支持filter类型的执行路径导致慢SQL 最近有个政府项目的库往政务云上迁移到达梦库,源库的业务量不是很大,库本身也不大。 迁移后抓取达梦的AWR,发现有一条SQL每次执行需要15s多,而在原来的Oracle里边执行0.1s。 查看后发现是达梦不支持filter执行路径导致的。 模拟如下:
阅读全文
摘要:Oracle DCD和Linux TCP KeepAlive和网络硬件防火墙探讨 Oracle的某些会话在超时断开后在警告日志抛出一定量类似如下日志: Fri Aug 19 17:51:32 2022 *************************************************
阅读全文
摘要:Oracle ASMLIB配置iSCSI设备导致的问题 出于测试目的或者环境不重要等目的,如果使用iSCSI设备并且使用ASMLIB配置管理,可能会遇到如下两个问题。 都是我遇到的问题。 OracleLinux7上边正常安装配置ASMLIB后,如果进行重启会导致扫描不到之前创建标记的盘,需要手工使用
阅读全文
摘要:Oracle如何安装配置ASMLIB 官方安装参考文档/链接 https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/installing-and-configuring-oracle-asmlib-software.h
阅读全文
摘要:Oracle如何从官方渠道下载ASMLIB组件安装包 简介 ASMLib 由以下组件组成: 开源 (GPL) 内核模块包:kmod-oracleasm 开源 (GPL) 实用程序包:oracleasm-support 闭源(专有)库包:oracleasmlib 如果是Oracle Linux系统,并
阅读全文
摘要:Oracle切换undo后如何确定使用旧undo的会话信息 背景 是这样的,最近RAC的磁盘组90%报警,存储空间只能再加2T空间。 而这套RAC的DATA组用了normal冗余,不知道当初哪个大聪明这么搞的,底层还是做了RAID 10的。 领导也不知道不懂这么设置的。 因此,这新的2T创建新磁盘组
阅读全文
摘要:Oracle找出所有表字段中值包含中文并生成扩充字段的SQL脚本 背景 后续计划将Oracle的某个库迁移到云上的达梦库,Oracle字符集为ZHS16GBK,达梦库字符集为UTF-8。 我们知道,中文汉字在UTF8中一个汉字占3个字节,而在GBK中则是占2个字节,测试过程发现若字段中存有中文的行,
阅读全文
摘要:Oracle为什么写阻塞读导致Buffer Busy Waits 这之前需要了解在内存中定位并读取一个buffer的流程,先看看为什么读不阻塞写。 读不阻塞写: 假设会话s1在读取db buffer cache中读取需要的buffer过程中,会获取CBC Latch后查找定位buffer后,以共享S
阅读全文
摘要:Oracle利用 DBMS_PROFILER 包来分析PL/SQL瓶颈 在 Oracle 10g 版本之前,默认情况下不会安装 DBMS_PROFILER 包,此次演示版本为11.2.0.4.0,默认已经安装。 安装 DBMS_PROFILER 包方式如下: sqlplus / as sysdba
阅读全文
摘要:Oracle BUG?反连接中dblink访问远程表导致只能filter无法hash_aj的一种情况 版本11.2.0.4.0 构造环境如下: 有A,B两个库。 A库执行以下操作: create table a1 as select * from dba_objects; create databa
阅读全文
摘要:Oracle问题:一张表推荐创建多少索引合适 首先没有绝对说几个合适,需要结合实际业务情况评估,越来越多的情况下还要权衡DML的影响。 根据我的经验,明确索引主要影响insert、delete以及索引字段的update情况下(还会占用空间,一般不考虑这点),结合需求: 1.如果表基本静态,存储足够的
阅读全文
摘要:Oracle19C PDB中普通用户可以通过sqlplus scott/tiger连接吗 先说结论,目前我还没找到方式。 研究了挺久,通过百度,通过mos上搜索,也想通过触发器来实现,发现都不行。 先说sys用户,是可以的。 通过设置ORACLE_PDB_SID这个环境变量,可以实现sys直接登录后
阅读全文
摘要:Oracle19C如何为PDB新建service 在11g版本中,通常可以通过4种方式来新增service: 通过修改service_names参数来新增,这个是比较常用的 通过srvctl add service(只适用于RAC或Oracle Restart) 通过配置$ORACLE_HOME/n
阅读全文
摘要:Oracle反连接和外连接中NESTED LOOPS无法更改驱动表 先说反连接,现有SQL如下: select t.* from t where t.col not in (select /*+ nl_aj */ tt.col from tt where tt.col is not null) an
阅读全文
摘要:Oracle外连接等价于反连接的情况 在Oracle外连接等价于内连接的情况中提到了外连接中被驱动表的字段作为谓词条件出现在where中,并且不为is null的话,等价于内连接。 当外连接中被驱动表的连接列作为谓词条件出现在where中,且是做is null过滤,若select出现的列都属于驱动表
阅读全文
摘要:Oracle外连接等价于内连接的情况 实际之前有过研究,Oracle外连接的执行计划中没有出现OUTER的例子,现在展开来讲。 以左连接为例子,有SQL如下: 左边的执行计划中id=2并不带有OUTER,表示不是外连接。 右边的执行计划和左边的执行计划一模一样,证明左边的SQL完全等价与右边的SQL
阅读全文
摘要:Oracle NOT IN反连接中null值的处理和疑问 若有sql使用not in写法如下: 其中t和tt表的col列没有not null限制,这个时候一旦子查询中出现null值,会导致整个sql没有结果输出。 select count(*) from t where t.col not in (
阅读全文
摘要:Oracle反连接HASH JOIN ANTI NA会处理驱动表连接列null值 这个现象和Oracle内连接HASH JOIN/半连接HASH JOIN SEMI不处理驱动表连接列null值相反。 反连接中无论一下哪个结论都一样: HASH JOIN ANTI NA HASH JOIN ANTI
阅读全文
摘要:Oracle内连接HASH JOIN/半连接HASH JOIN SEMI不处理驱动表连接列null值 先说内连接,比如有sql如下: select count(*) from t,tt where t.col=tt.col; 测试表t,tt的信息如下:其中t表全是null值。 15:16:18 ZK
阅读全文