数据库
兰调意识流
这个作者很懒,什么都没留下…
展开
-
oracle物化视图不能自动刷新,但是可以手动刷新
记录一下,是前几天的问题了:建表的时候写的是Fast on demand刷新模式,依靠oracle的job,每20分钟增量刷新,但是某天发现to_date中的日期小于当前sysdate,且user_jobs表中的next_date的时间也小于当前系统时间,也就说明这个任务在那个时间点就中断了。在sqlserver developer中执行show parameter job_queue_pr...原创 2019-02-13 14:50:29 · 6936 阅读 · 1 评论 -
select * from a,b where a.c=b.c实为内连接
仅作为记录用来翻阅提醒,因为老忘:select * from a,b为笛卡尔乘积,对笛卡尔乘积概念不熟的呢就自行搜索百科复习一下;select * from a,b where a.c=b.c 等价于select * from a inner join b on a.c=b.c;select * from a left join b on a.c=b.c,将a表查询的结果去b中做匹配,匹配不...原创 2019-02-25 14:37:47 · 8384 阅读 · 1 评论 -
oracle自定义数组类型
废话不多说,直接上代码 create type list_attrs as varray(10) of varchar2(80); --创建一个名为list_attrs的定长数组,元素个数最多为10 create table test_yiyu(id number,name list_attrs) --建表 insert into test_yiyu values(1,...转载 2019-02-25 15:33:25 · 2105 阅读 · 0 评论 -
a left join b 在where后加B表的过滤条件时,成了inner join
今天在写sql查询的时候,发现select * from A left join B on A.c=B.c where B.m>1竟然和select * from A inner join B on A.c=B.c where B.m>1等价,即left join 成了inner join,但是查询结果要求以A表为主表,在B表中未匹配到的也要返回,所以此处应把对B表的过滤加到on条件中...原创 2019-03-01 17:34:20 · 1150 阅读 · 0 评论 -
Oracle中查询某个字段是否全部为数字
背景:在table_x表中,有字段name,存储的是varchar2类型,存有abc23,12345f6等值,现需要根据name字段过滤以"A"(大写)开头且后面跟着3位数字的行,即过滤出类似“A000”的结果。思路:第一步,用通配符过滤出A开头的且后面跟着3个字符位的;第二步,将前面的A截取,把后面三位当成新字段,判断是否为数字。sql是这样的select * from table_x...原创 2019-02-26 15:28:38 · 7788 阅读 · 0 评论 -
oracle中的同义词SYNONYM
以前没接触过,直到有一次在数据库中查某个物化视图的时候,view sql进去看到的是另一个物化视图,就去网上查了查oracle的别名,才知道有这个机制,参考的以下链接:https://www.cnblogs.com/jxldjsn/p/9102334.html下面就记录一下我自己的理解(也是怕忘记了,之前注意到这个没太在意,结果忘记了导致这次又看不懂了。):SYNONYM是什么?用来干什么的...转载 2019-04-19 14:48:54 · 625 阅读 · 0 评论 -
一条sql执行很慢,是什么原因?
分两种情况,一种是平常执行块,偶尔很慢;二是一直都很慢。对于第一种,一般有以下两种原因:(1) 数据库在刷新脏页(flush)要往数据库中插入、更新一条数据时,数据库会先在内存中将这一条数据更新吗,但却不会立即持久化到磁盘中,而是把这些记录写入到redo log中,等到空闲的时候,再从redo log中把数据同步到磁盘中去。redo写满了:redo log的容量是有限的,当数据库一直很忙,...转载 2019-04-30 11:34:21 · 1371 阅读 · 0 评论