前几天一个做数据库产品的朋友和我聊起在国产数据库上的弯道超车问题,他觉得对于通用关系型数据库,Oracle已经领先太多了,如果不弯道超车,国产数据库永远没有机会赶上Oracle。弯道超车一直被很多朋友看作是超越的捷径,不过我认为弯道超车一定是以实力作为后盾才能够完成的。要想弯道超车,后车的引擎必须高于前车,至少是二者相当,没有实力做保障,弯道技术再好,也是很难完成超车的。在通用关系型数据库领域,想要对Oracle实现弯道超车,大家都会选择CBO优化器。AI4DB是被大家寄予厚望的。通过AI算法的辅助来纠正执行计划中的错误,或者帮助某条SQL选择一个更好的执行计划。其主要方法是基于历史数据的分
1.漫谈兼容性问题数据库产品,是否被大规模使用?一方面是产品自身功能,另一方面是产品生态问题。如果产品有着繁荣生态,无疑对使用者来讲会大大降低使用成本和风险。在这其中,Oracle无疑是数据库领域的领导者。在过去数十年时间里,Oracle公司产品取得了巨大的成功,在国内有着海量的用户。当面临上面谈到的迁移工作时,兼容Oracle无疑对用户来讲好处多多。确实,我们也看到国内很多数据库厂商将兼容Oracle作为产品的核心能力之一。下文将对这一能力做对比说。在这之前,我们先谈谈兼容性的几个问题。❖ 不存在完美兼容产品间是必然存在差异的,不存在完全兼容的两个产品。也就是说,不要追求完美兼容,它只是降低
1.漫谈兼容性问题数据库产品,是否被大规模使用?一方面是产品自身功能,另一方面是产品生态问题。如果产品有着繁荣生态,无疑对使用者来讲会大大降低使用成本和风险。在这其中,Oracle无疑是数据库领域的领导者。在过去数十年时间里,Oracle公司产品取得了巨大的成功,在国内有着海量的用户。当面临上面谈到的迁移工作时,兼容Oracle无疑对用户来讲好处多多。确实,我们也看到国内很多数据库厂商将兼容Oracle作为产品的核心能力之一。下文将对这一能力做对比说。在这之前,我们先谈谈兼容性的几个问题。❖ 不存在完美兼容产品间是必然存在差异的,不存在完全兼容的两个产品。也就是说,不要追求完美兼容,它只是降低
某银行客户在从Oracle迁移到MySQL的开发中,MySQL在READ-COMMITTED隔离级别下,出现了insert阻塞update的情况,但同样的情况下,Oracle的insert则不会阻塞update。本文通过复现该问题,分析MySQL的锁信息,确认是MySQL与Oracle在并发事务处理上的差异,在进行数据库迁移改造的程序开发应予以关注。1.问题复现1.1.环境准备MySQL版本的8.0.26,隔离级别是READ-COMMITTED ,测试表t的字段a为主键。mysql>selectversion();+-----------+|version()|+-----------+|8.
某银行客户在从Oracle迁移到MySQL的开发中,MySQL在READ-COMMITTED隔离级别下,出现了insert阻塞update的情况,但同样的情况下,Oracle的insert则不会阻塞update。本文通过复现该问题,分析MySQL的锁信息,确认是MySQL与Oracle在并发事务处理上的差异,在进行数据库迁移改造的程序开发应予以关注。1.问题复现1.1.环境准备MySQL版本的8.0.26,隔离级别是READ-COMMITTED ,测试表t的字段a为主键。mysql>selectversion();+-----------+|version()|+-----------+|8.
对于所有开发工程师(农民工)来说,数据库索引简直就是神器,遇事不决先建立索引再说。先不管建立索引有什么影响,只要有那么一点点的希望,它能够带来sql执行效率的提升,那就是有用,而oracle总是会满足我们大部分的希望,所以索引真的是我们在遇到数据的瓶颈的时候一大非常非常顺手的利器。既然是如此的高效,几乎总能满足我们的愿望,那我们还区了解它干什么?是对oracle的怀疑,还是对自己的不自信,那绝对都不是。我们之所以探究索引,只因为我们只是想简简单单的认识它。索引是一种数据结构,它可以独立于数据存在,也可以和数据同在。索引的数据结构的唯一目的是为了优化查询的效率,让我们能够更快的找到数据的位置。目
有些数据采集的不规范,比如在联系电话里面,会填写上其他汉字。那如何把这些不符合规范的录入数据批量查询出来。在oracle数据库里可以采用lengthb这个函数找出来。
对于所有开发工程师(农民工)来说,数据库索引简直就是神器,遇事不决先建立索引再说。先不管建立索引有什么影响,只要有那么一点点的希望,它能够带来sql执行效率的提升,那就是有用,而oracle总是会满足我们大部分的希望,所以索引真的是我们在遇到数据的瓶颈的时候一大非常非常顺手的利器。既然是如此的高效,几乎总能满足我们的愿望,那我们还区了解它干什么?是对oracle的怀疑,还是对自己的不自信,那绝对都不是。我们之所以探究索引,只因为我们只是想简简单单的认识它。索引是一种数据结构,它可以独立于数据存在,也可以和数据同在。索引的数据结构的唯一目的是为了优化查询的效率,让我们能够更快的找到数据的位置。目
有些数据采集的不规范,比如在联系电话里面,会填写上其他汉字。那如何把这些不符合规范的录入数据批量查询出来。在oracle数据库里可以采用lengthb这个函数找出来。
实现的功能为:1:从csv文件中的第一行提取列名生成数据库表2:将原始的csv文件转换成sqlloder能识别的csv(增加列),根据时间列生成一个整形主键列3:生成ctl控制文件4:启动Sqlloder并导入这里做记录主要是导入时出现了莫名其妙的问题第一行第一列总是会报错误第一列为数字列,则SQLLoader报ORA-01722第一列调整成时间列并将数字列放到最后,则SQLLoader报时间列转换错误。参考各种文章不能解决,参考的解决方案包括1:在ctl文件中指定字段类型https://blog.csdn.net/qq_25798961/article/details/88534104CHA