How to Change in SQL Prompt format in Oracle , MySQL, PostgreSQL(数据库比较系列七)
像UNIX的PS1环境变量可以改变shell操作提示符, 在日常工作环境中可以提升一些效率可以防止一些误操作, 很多年前在看tom关于在练习oracle操作前的一些环境配置像login.sql, 还可以显示当前的用户或数据库名很是欣喜, 下面记录Oracle , MySQL, PostgreSQL三个主流数据库改变命令行提示符的方法。
How to find full table scan SQL in Oracle,MySQL,Postgresql ?(数据库比较系列五)
Queries that do “full table scan” are the ones that don’t use indexes. However, it is more suitable to use a full table scan for small tables, and it will not cause performance problems. Or when the data on the large table is seriously skewed and a large proportion of data records need to be returned, a full table scan will also be better than an index scan.
Oracle、MySQL、PostGreSQL数据库比较系列(四): 可更新VIEW
最近在测试Oracle语法其它数据库的兼容性时,发现postgreq上对于TABLE上创建的简单view操作时还有个Oracle没有的东西:rule, 在openguass 2.1当通过view 做insert操作时会提示下面的错误,但是在postgreSQL 13.2和MoGdb2.1(支持updatable view)上并未报错:
“You need an unconditional ON INSERT DO INSTEAD rule or an INSTEAD OF INSERT trigger.”
Oracle、MySQL、PostGreSQL、SQL Server数据库比较系列(三): VARCHAR与VARCHAR2
Oracle 数据库中的 varchar 和 varchar2 数据类型都用于存储字母数字值的动态长度。但它们之间存在一些差异。varchar 数据类型是适用于所有关系数据库产品(Oracle、MySQL、PostgreSQL 和等)的 ANSI 标准数据类型,存储长度不同数据库差异较大。而 varchar2 数据类型是 Oracle 标准数据类型。VARCHAR是Varchar2的同义词,当我们创建 varchar 数据类型时,Oracle 服务器会在内部自动将 varchar 数据类型转换为 varchar2 数据类型。而部分国产库是VARCHAR2是VARCHAR的同义词。
Oracle、MySQL、PostGreSQL、SQL Server数据库比较系列(二):查询每秒事务数
在做 db benchmarks 时,qps、tps 是衡量数据库性能的关键指标,TPS : Transactions Per Second 是每秒事务数,即数据库服务器在单位时间内处理的事务数。 横向对比计划几类数据库计算tps的方法。
Oracle、MySQL、PostGreSQL、SQL Server数据库比较系列(一):null value
最近几年数据库市场百花齐放,在做跨数据库迁移的数据库选型时,除了性能、稳定、安全、运维、功能、可扩展外,像开发中对于值的处理往往容易被人忽视, 之前写过一篇关于PG区别Oracle在SQL解析缓存的笔记《PostgreSQL 12 : Prepare statement和plan_cache_mode 参数》,这里记录一下null 值在这几个数据库中的区别。
openGauss 2.0/3.1/5.0 企业版单机最简安装小测
对于我这从事10余年的oracle dba从未像今年这样感觉到压力, 国产开源数据库铺天盖地的宣传,我依旧建议不要满目随大流式换库,因为数据库迁移经验对于不同的业务场景并非可以完全复制,昨天想装个openGauss小测一下,发现2.0新鲜发布,OpenGauss社区可以下载安装介质,openGauss内核源自PostgreSQL 9.2,是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。
PostgreSQL无效页面和校验(Checksum)和验证失败(Verification Failed)
前几天分享了oracle lost write detection, 后来想找找postgresql有没有相同技术,结果没有找到,但是对于对于PostgreSQL中无效页面(Invalid Page In Block)是有发现机制的, PostgreSQL主要在进出buffer cache的过程中维护页面有效性,PostgreSQL在数据库和操作系统(固件,磁盘,网络,远程存储)之间有强大的”边界”。
Go语言(GO lang)连接PostgreSQL Database使用pq
《Go语言(GO lang)连接Oracle Database使用godror》上篇以后,这里继续测试使用GO Lang操作PostGreSQL, 使用pq驱动。
使用pg_top动态monitoring PostgreSQL实例
操作系统有top (AIX topas)可以监视系统的进程信息, oracle也有著名的oratop 工具显示顶级会话信息,目前在oracle 12c以后的版本oratop已经集成到了安装介质中, PostgreSQL 也有一个类似的工具pg_top, 用于监视数据库中的实时活动,以及查看数据库主机本身的基本信息,也可以交互显示及定期自动刷新。
PostgreSQL 12 : Prepare statement和plan_cache_mode 参数
在SQL的初始解析阶段PostgreSQL和ORACLE rdbms有很多相似之处, 如开始会进行语法、语义的检查,那些元数据存在system表空间(oracle)或 system catalog(PostgreSQL). 然后根据之前预准备的统计信息(可能动态采样),CBO 会为SQL执行生成一个执行计划. 但是在解析完成后ORACLE和PG(以下用PG代替PostgreSQL)会存在一些差异,oracle会把执行计划存储在shared pool(Libaray cache)中对于所有会话可以共享,但是PG存储在program的本地内存中
Script: PostgreSQL 实现字符串拆分 split (二)
几年前写过一篇在oracle 使用oracle函数实现的类似java 语言中的split 拆分功能,这篇改用PostgreSQL实现类型的功能。
在PG提供了两个函数用于拆份字符串:
regexp_split_to_array:它根据正则表达式拆分字符串并将其部分返回到数组中。
regexp_split_to_table:它根据正则表达式将字符串拆分为多个部分,并将其部分返回到表的行中。
PostGreSQL12 源码安装与时区修改 (一)
这篇简单的记录PostGreSQL12 (以下简称PG)Binary packages on RHEL 7.3安装过程,与后期的PG DB 和RHEL7 OS字符集修改。