使用 MERGE 语句 INSERT 不进去的一个例子
今天朋友给我看一个 SQL ,一个 MERGE 语句。 看SQL,他的本意好像是,有一堆变量,一个表里有就更新,没有就插入。SQL 文本如下;MERGE INTO HI_SMPL T1USING (SELECT VBLEN, POSNR FROM HI_SMPL WHERE VBLEN = 'VBELN00001' ...
半连接的优化思路1,Fiter 方式
什么是半连接?类似如下的SQL。SELECT * FROM T1 -- 驱动表 WHERE T1.B = :1 AND T1.A IN ( SELECT T2.A FROM T2 -- 被驱动表 ...
利用索引倒序index_desc, 优化取表中最后20行记录的例子。
先建立测试数据。create table t1 as select level seq, level+10000 n from dual connect by level <= 500000;一般这么取最后后20个记录。 select *from (select t1.* from t1order by seq desc )where rownum<= 20 ;执行计划--------------------------------------------------...
AWR
--===================================================================1. 数据库性能分析及优化------------------------------------------------------------DB 性能分析目的:快速准确查找核心性能问题,并分析问题原因。需要的能力: 1.通过发生的现象,分析因果关系的能力。  ...
两数相乘
今天看到个SW测试题目,看到同事们用Java写,我也写了个SQL的,题如下; -----------------------------------------------------------------由两个正整数相乘组成序列。例如,4和20两个数。通过相乘可得到的结果,按由小到大的顺序排列,则得到 4, 4*4, 20,4*4*4, 4*20... 序列。再例如5和7两...
MERGE JOIN CARTESIAN
今天同事给我一个SQL,说很慢,让帮看一下。 打开执行计划一看, Id=31 有个 MERGE JOIN CARTESIAN 。 我问他是不是少写个关联条件? 他一看果然忘记写了,加上以后就好了。 SQL太长不写了, 只把执行计划贴出来。 Plan Hash Value :------------------------------------...
某列别增加一行的问题
今天一个同事问我一个问题,用 SQL 如何实现。 一堆 SQL 运行以后显示如下结果,A B C--- -- ----------AAA A1 123AAA A2 233AAA A3&n...
用SQL写斐波那契数列
斐波那契数列 ?斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci[1] )以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=...
用SQL, 十进制转二进制的方法
问:1234 转二进制,一个SQL如何写?---------------------------------------------------------------方法1: 用递归, 除二取余法WITH T (A,B) AS (SELECT FLOOR(1234/2), MOD(1234,2) FROM DUAL UNION ALL SELECT FLOOR(T.A/2) , MOD(T.A,2) FROM TWHERE T.A > 0 ) SEL...