主键可以重复?
我的公众号原文:https://mp.weixin.qq.com/s/OwRmjtx4BGN2WHRMZDW1iQ 经常遇到求救。这次是说要给一个表加主键,但是加不上。我看到了是因为有重复数据。我问着急吗?着急有着急的办法。不着急有不着急的办法。 多年前做公安系统时候,我们一个表都是几十亿数据起步的,没有十亿的数据都
一个很老但是很有用的功能(Oracle MySQL PG 对比)之一
我的原创连接:一个很老但是很有用的功能(Oracle MySQL PG 对比)之一 (qq.com)前几天,有人问我要执行一个DDL的变更。问会锁表多久?我说让我看看SQL。alter table 表 add 需要加的字段 VARCHAR2(32) default 'N/A';update 表 se
讲讲AWR
我的原创连接:讲讲AWR (qq.com) 我这几天一直在处理一些Oracle的分析,积累了一些要说的,前几天说了要些,一直在处理问题。这几天白鳝老师也在写,说明现阶段来说AWR对我们来是一个最好的辅助工具。前段时间在一个PG的群中一位朋友说了一句话:“说一个oracle极难被超越的地方,就是故障处理owi的思想。虽然国产很多也在借鉴,但是没有做得很好的。即使现在,一个好
PDB资源隔离实践
我的原创连接:https://mp.weixin.qq.com/s/CzJzValU5Uzb5rFl-hcrVA 最近有些场景遇到资源隔离的场景。之前自己摸索过,现在实践了。这里先要申明一下,正常来说有开发规范,并且可以落实,基本用不到隔离。以目前数据库的技术和硬件来说都行。但是遇到不可掌控的实现逻辑,想怎么写怎么写的话,还是有必要的。当然这里如果有好的硬件比如像一体机那
dblink的关联与本地关联差异
我的原创连接:https://mp.weixin.qq.com/s/eHR4smuaxCYOYdMr4ADwKQ 首先申明,我反对不同主机之间的DBLink直接关联。因为中间有网络层,这样关联效果较差。遇到这种场景和需求我通常会有如下几个方案:1、迁移到一起。2、物化视图。(需要通过DBLink)但是在本地落地。3、OGG同步过来。 如果在同一主机上呢?这个比
一次Oracle优化所想到的
我的原创连接:一次Oracle优化所想到的 (qq.com)有一次遇到一个问题。当然这图已经被我涂抹的没法看了(还是涂抹掉没有风险)。但是依然能得出一些信息。(补充,该SQL根据报上来的情况是执行一次8秒以上)1、10个表进行关联(一个个数下来)2、where就一个id(看数量级是一个,应该属于点查)3、省略了大量的列(列越多回表越大)4、cost很大。(点查不应该这么多)5、用到了dblink(
数据库对比系列之一
https://mp.weixin.qq.com/s/U-sYXtokqI7nzYypj1iDpA 公众号原文 有人想让我多维度比较一下数据库做成一个系列。我很想,但是一直没完成。马上要过年了,我不想拖到明年。于是今天先开个头。 今天这个是优化器的差别。 我们先看看在某个场景下的三种数据库优化器如何表现?先看
数据类型与函数索引-Oracle篇
上篇是MySQL的这篇是Oracle的。总体来说差不多,不一样的地方我会标出来。先创建一个表,写入10条数据。(MySQL5条就行,Oracle10条其实都不行。原因是Oracle处理觉得10条数据有没有索引一样。所以我最后是写入了1万条数据)分别建立索引同时把T表也建立好。完全和MySQL场景一样。然后为了更好的体现,对两个表都收集一下统计信息。接下来看结果。a列是数值型的用到索引。a列是数值型
聊聊虚拟化和容器对数据库的影响
虚拟机上运行数据库和物理机上运行数据库哪个好?这里说的好应该说是性能好,稳定性好。以我之前的认识是物理机较好。虚拟机运行的数据库在高负荷时候表现不佳。为什么?今天来谈谈。 有一次我们谈及到物理机,有人问一个物理机的CPU相当于多少个虚拟机的CPU。说这个话其实就已经定性了,一个物理机的CPU会强于虚拟机的CPU,至于强多少那么是需要定量的。我们来看一个图,这是一台普通PC服
批量锁(适用各种关系型数据库)
自己原文公众号:https://mp.weixin.qq.com/s/3zyXC0oJtMV2hEZ6v_e2pg 一次处理Oracle问题。看到AWR已经这样了。说明后台属于惨不忍睹。其实每个数据库都应该有这么一个类似AWR的才好判断。迄今为止PG上国内瀚高做了一个类似的,连界面样式都雷同AWR,是比较好的。希望有一天MySQL官方也出一个AWR。 &nbs
Oracle的压测
自己原文公众号:https://mp.weixin.qq.com/s/u2SdpvYvlNYk2EcPfKy0_w 之前姜老师发的这个数据。我是认可的。如果单CPU 是我们简单(不一定合理)估算2万多次。我在上一篇的苏伊士运河的文章中我尝试单CPU每秒1万次登录。我那个一次登录是select了两次。所以我上次写的每秒1万次登录,等于每秒2万次请求。一次是取密码,一次去取权限。所以也差不多。我们姑且
Oracle 隐藏列
自己原文公众号:https://mp.weixin.qq.com/s/pDPqeGn0WqR06oYg7rIU5A CREATE TABLE xxg (id int, name varchar2(40), sal number(9) INVISIBLE);注意最后一列是不可见。我们在工具中PLSQL这种工具中右键,View一下是看不到最后一列的。但是在命令行中 使用desc 命令是可以
Oracle的特性分页
自己原文公众号:https://mp.weixin.qq.com/s/seHUAzw_j0DdkaAM0NZTCA 今天说这个是因为我们在谈升级(不管什么数据库Oracle MySQL PostgreSQL等等)我其实倒不是关注他的性能如何提升。因为必然有提升。我也不关注安全性。因为我坚信每个数据库自己本身都是安全的,不安全的只有人。我最关注的是特性。 很多
Oracle clone database
自己原文公众号:https://mp.weixin.qq.com/s/LmSjADYHZ4UX1cESiCJJ3g 我们工作中基本都会遇到数据迁移的事情,逻辑备份导出导入不可想象。物理备份相对来说比较快。当然如果有系统快照的话,那是最快了。但是实际正式环境,不可能用快照的。不见得都是虚拟机。而且我一直觉得正式环境的数据库还是物理机比较好。 &nb
Oracle意外发现PDB适合微服务和中台
自己原文公众号:https://mp.weixin.qq.com/s/TY_OOj3W7TUAWQXoSq4ecQ 以前一篇说过现在很多业务为了微服务就是拆,拆了就是微服务了。拆不动了就开始合,合了就是中台了。现在还坚定不动,维持原有系统运行良好的都是极少数的理智技术主管。(如果实在支持不了业务另当别论,更多的时候是妥妥的支持业务,还是要搞) 我
Oracle的过载保护-数据库资源限制
自己原文公众号:https://mp.weixin.qq.com/s/ICj9GzMLukriS9ax9qTR8w 一般来说合格的程序员都会在上线前对自己代码进行检查,避免全表查询或者返回大量数据。虽然简单,同时问题也是最低级的,但是却是常见也是最多的引起故障的原因。 在MySQL、PG的慢日志和Oracle的AWR、甚至Redis的慢日志中都能找到这些问题
database(Oracle MySQL)查询速度和数据量有关系吗?
自己原文公众号:https://mp.weixin.qq.com/s/G4LJ6Eg1RoosmPKG6Om_hw 从前,乃至现在我依然会听到很多人说,当数据量大了以后就查询慢了。还有被问过“我数据表1000万记录左右,查询很慢怎么办?”。还有说这么大的量,需要大数据来处理。 对于以上的问题我似乎觉得都不是问题。因为我觉得数据量大和查询关系不大,因为你并不需
databas如何避免重复故障
自己原文公众号:https://mp.weixin.qq.com/s/lQp93cYHyqCVQSG6GPJ8yw 我个人以为首先要收集分析以前的问题。今天在远程参会的时候看到这个,浙江移动做的真好。找出前车之鉴,这个说的容易做起来难。我工作经历见过太多了,今天这个问题,明天还出。因为不知道为什么?所以下次还是出。或者说判断失误,以为是这个方向的问题,后来发现其实是另外方向的问题。或者就解决了这个
Oracle跨主机复制数据库背后的意义
自己原文公众号:https://mp.weixin.qq.com/s/V7uc8_HgCikAfou5IuJ45A 有人问我他们的数据库要迁移(非正式环境,也就是说可以停机)环境是Oracle 12C PDB模式。怎么做快一些?数据库迁移不仅仅是表,如果就是表还好办一些,就是如果大了,时间长一点。关键是数据库对象太麻烦。 有没有好方式呢?仅仅抱着尝试心态试试(
OLTP的承载
自己原文公众号:https://mp.weixin.qq.com/s/FRcxNQGWjui2LCpOE8FaZA 前几天和以前同事吃饭。他们也是刚毕业后不久就跟着我,可以说是我带的。现在都在各自领域负责技术。我问其中一个他们现在业务规模,他们峰值有1000笔秒。(这里不方便说具体数字)你就算一天86400秒都是峰值那就9千万笔交易。实际一定没有9000万,但是千万级别一定有的。(一个Oracle