展开

关键词

OraclePG的count

这是杂货铺的第463篇文章 曾经测试过Oracle 11g下count(*)、count(1)、count(主键列)和count(包含空值的列)这几种操作,究竟有何区别,结论如下, 11g下,通过实验结论 前几天,碰巧看见PostgreSQL中文社区发的一篇文章,关于在PG中count(1)和count(*)的效率问题,从结论看,和Oracle很像,但是他是从开源code,探究的整个过程,能够更准确地了解背后的原理 可见,OraclePG对于一些操作,其实存在相同之处的,谈不上谁借鉴,可能更多地还是针对场景,为了满足业务以及性能方面的需求,提供的合理逻辑。 其实我想说的是,无论是从10046,还是从PG的源码,我们应该看得深入一些,从原理设计层面,站在架构师、开发人员的视角,了解这个功能,设计的初衷,这才有助于我们借鉴好的设计,学以致用,丰富我们的经验,实现自我提高

41850

Oracle、MySQL、PG是如何处理数据库“半页写”的问题的?

再看看oracleoracle对于断页比较“看得开”,他不会从数据库层面去避免发生断页问题,数据库内部没有机制保证断页的处理,它通过其他方面比如rman恢复、adg等方式保证出了问题进行恢复。 最后看看pg的处理,pg通过开启full_page_writes参数(默认开启)来避免断页问题。 这种方式对性能也有一定影响,但是相比mysql的方式我觉得要好一些,mysql相当于任何一个脏页刷盘前都需要写两份,pg只是在数据块第一次发生变更的时候写入xlog中。

62520
  • 广告
    关闭

    腾讯云+社区系列公开课上线啦!

    Vite学习指南,基于腾讯云Webify部署项目。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一文详解TDSQL PGOracle兼容性实践

    又例如Oracle中的float对应TDSQL PG版中的double precision,Oracle中的binary_float对应TDSQL-PG中的real,Oracle中的binary_double (Oracle兼容开关打开就是Oracle模式,不打开就是PG模式)。 2.2 存储过程语法差异 Oracle创建存储过程的语法与PostgreSQL有很大差异。 2.3 其他兼容性介绍 其他兼容方面,TDSQL PG版支持Oracle特有的package及200多个Oracle常用的系统函数。 4.6 双轨运行方案 下图是我们的双轨运行方案,图中有两个架构,分别是Oracle  To  TDSQL PG版和TDSQL PG  To  Oracle。 业务上线前期,我们采用双轨运行,支持从Oracle到TDSQL PG版以及从TDSQL PG版到Oracle的数据同步。

    17020

    【数据库巡检】支持Oracle、MySQL、MSSQL、PG等11种数据库

    对于Oracle的SQL脚本而言,脚本DB_Oracle_HC_lhr_v7.0.0_10g.sql适用于Oracle 10g数据库,脚本DB_Oracle_HC_lhr_v7.0.0_11g.sql适用于 脚本DB_PG_HC_lhr_v7.0.0.sql是PG数据库脚本,执行后会产生PostgreSQL数据库的健康检查html报告。 )、mysql(MySQL、TiDB、OceanBase)、MSSQL客户端(SSMS、Navicat皆可)、psql(PG、Greenplum、openGauss)、gisql(国产达梦)、gsql( 4、PG数据库 其它不再列举。 5、达梦数据库 其它不再列举。 6、TiDB数据库 其它不再列举。 7、openGauss数据库 其它不再列举。 4、PG数据库 需要有psql客户端,运行方式如下: psql -U postgres -h 192.168.66.35 -p 54324 -d postgres -W -H -f D:\DB_PG_HC_lhr_v7.0.0

    17420

    【数据库巡检】支持Oracle、MySQL、MSSQL、PG、OceanBase、TiDB、openGauss和达梦等9种数据库

    一、巡检脚本简介 二、巡检脚本特点 三、巡检结果展示 1、Oracle数据库 2、MySQL数据库 3、SQL Server数据库 4、PG数据库 5、达梦数据库 6、TiDB数据库 数据库 3.1、命令行方式 3.2、SSMS图形界面 4、PG数据库 5、达梦数据库 6、TiDB数据库 7、openGauss数据库 8、DB2数据库 9、OceanBase 脚本DB_PG_HC_lhr_v7.0.0.sql是PG数据库脚本,执行后会产生PostgreSQL数据库的健康检查html报告。 、TiDB、OceanBase)、MSSQL客户端(SSMS、Navicat皆可)、psql(PG、openGauss)、gisql(国产达梦)、gsql(openGauss)、db2(DB2数据库)、 4、PG数据库 其它不再列举。 5、达梦数据库 其它不再列举。 6、TiDB数据库 其它不再列举。 7、openGauss数据库 其它不再列举。

    29920

    【数据库健康巡检脚本】支持Oracle、MySQL、SQL Server、PG和OS的检查

    对于Oracle的SQL脚本而言,脚本DB_Oracle_HC_lhr_vxxx_10g.sql适用于Oracle 10g数据库,脚本DB_Oracle_HC_lhr_v6.0.8_11g.sql适用于 脚本DB_PG_HC_lhr_v1.0.0.sql是PG脚本,目前结果比较简单,还在持续更新优化,执行后会产生PostgreSQL的健康检查html报告。 小麦苗数据库巡检脚本特点 1、可以巡检Oracle、MySQL、SQL Server、PG数据库(后期考虑增加MongoDB) 2、脚本为绿色版、免安装、纯SQL文本 3、跨平台,只要有SQL*Plus PG数据库 ? 脚本运行方式 Oracle数据库 只要有sqlplus的客户端即可。 root root 26289 Jul 10 17:19 LHR_OSCHECK_REPORT_OCPLHR_20190710171939.html [root@OCPLHR lhr]# PG

    88971

    小麦苗数据库巡检脚本,支持Oracle、MySQL、SQL Server和PG等数据库

    对于Oracle的SQL脚本而言,脚本DB_Oracle_HC_lhr_v7.0.0_10g.sql适用于Oracle 10g数据库,脚本DB_Oracle_HC_lhr_v7.0.0_11g.sql适用于 脚本DB_PG_HC_lhr_v7.0.0.sql是PG脚本,执行后会产生PostgreSQL数据库的健康检查html报告。 二、巡检脚本特点 1、可以巡检Oracle、MySQL、SQL Server和PG数据库,也可以巡检Linux操作系统 2、脚本为绿色版、免安装、纯SQL文本 3、跨平台,只要有SQL*Plus、mysql 4、PG数据库 [image-20210130153433186.png] 5、OS信息 [wps16.jpg] 四、脚本运行方式 1、Oracle数据库 只要有sqlplus的客户端即可。 [image-20210130150314553.png] 4、PG数据库 需要有psql客户端,运行方式如下: psql -U postgres -h 192.168.66.35 -p 54324 -

    52820

    Oracle转换Postgres

    如果因ACS/pg而需要将Oracle移植到PG,那么就需要熟悉AOLserver Tcl,尤其是SOLserver的API。 OraclePG中ROLLBACK和COMMIT、SAVEPOINT的语义相同。Oracle的隔离级别,PostgreSQL中也有。大多数情况下PG的隔离级别(读已提交)就已满足需求。 PG中的numbers限制(小数点前到131072位,小数点后16383位)比Oracle高,内部存储方式相同。 Oracle的TIMESTAMP和PG类似。 Oracle只有INTERVAL YEAR TO MONTH and INTERVAL DAY TO SECOND,因此PG可以直接使用。 连接Oracle,提取结构,产生SQL语句然后加载到PGOracle to postgres:不使用ODBC和其他中间件。转换表结构、数据、索引、主键和外键。

    1.6K00

    Oracle转换Postgres

    如果因ACS/pg而需要将Oracle移植到PG,那么就需要熟悉AOLserver Tcl,尤其是SOLserver的API。 OraclePG中ROLLBACK和COMMIT、SAVEPOINT的语义相同。Oracle的隔离级别,PostgreSQL中也有。大多数情况下PG的隔离级别(读已提交)就已满足需求。 PG中的numbers限制(小数点前到131072位,小数点后16383位)比Oracle高,内部存储方式相同。 Oracle的TIMESTAMP和PG类似。 Oracle只有INTERVAL YEAR TO MONTH and INTERVAL DAY TO SECOND,因此PG可以直接使用。 连接Oracle,提取结构,产生SQL语句然后加载到PGOracle to postgres:不使用ODBC和其他中间件。转换表结构、数据、索引、主键和外键。

    19730

    ORACLE 的方法管理 POSTGRESQL 还是用MYSQL 的方式管理POSTGRESQL

    说到这里问题是PG 怎么办,PG 中的SCHEMA 和 ORACLE 概念无差, 而不幸的是,他的DATABASE 的概念也和 MYSQL 无差。貌似 PG 属于脚踩两只船的那位。 如果我们以ORACLE的方式管理 PG ,在一个DATABASE 里面创建多个SCHEMA ,也就是放弃PG 的多DATABASES 的概念,仅仅使用一个数据库,我们会遇到另一个问题,autovacuum 这就引出另一个不同的概念,在ORACLE 有 UNDO LOG 有清理的线程,但PG 的原理是没有REDO UNDO LOG ,通过表本身来实现,就会有DEAD 的元祖。 所以我暂时只能理解,如果你想用ORACLE的方式来管理PG 的数据库,则最好表不要特别大,并且数量也不要太多。 那我们对上面的问题既然有了一定的认知,我们就能避开某些可能会出现问题的地方,例如,我可以使用ORACLE的方式来管理PG ,建立多个SCHEMA, 但如果一组表与另一组都是无关联的, 那我就在PG的CLUSTER

    34620

    由断供 到还的赶紧学习POSTGRESQL

    所以PG 作为传统RDBS系统, 替换传统的ORACLE ,SQL SERVER 优势是明显的, 开发人员的思路也不需要变化,至少那些开发人员用惯的存储过程还能存活,甚至PG 支持多种语言的存储过程,而不是和某些数据库如果更换 并发select ,JOIN的方式与商业数据库齐平, 多种的物理,逻辑数据复制,物化视图, 多种索引方式的形成和使用,等等,基本上如果拿PG 当商业数据库去销售,没有任何的难度,并且也与ORACLE 诚然这个是一个攻击点, MYSQL ,或者ORACLE ,SQL SERVER 的从业者数量较多,比较方便就能找到相关从业者入职, PG的人员招聘是有难度的,我自己知晓的某单位,找PG的DB管理员,长达 1年,最终还是没有找到合适的, 其实目前有些单位可以下调对于PG从业人员的要求, 以PG外部厂家和初中级PG管理员并重的方式,两条腿走路. 因为如果数据库的选择用英语时态来看 SQL SERVER 和 ORACLE 属于过去式, MYSQL 属于现在完成时, PG ,MONGODB 属于现在将来进行时.

    19520

    PostgreSQL中索引是否存储空值?

    据我所知,在oracle里索引是不存储null值的,所以is null走不了索引,在pg里is null可以走索引,说明null值在索引里面也进行了存储。下面分别对pgoracle进行测试验证。 在pgoracle中分别创建test表,初始化数据 test=# create table test(c1 int,c2 int default null); CREATE TABLE test=# test=# create index on test(c2); CREATE INDEX test=# analyze test; ANALYZE oracle SQL> create index 从上面执行计划对比可以看到pg走了索引,oracle没走索引,因此也验证了pg的btree索引是可以存储空值的。笔者也验证过mysql的btree索引也是存储空值的。 其实我个人觉得不应该存储,oracle里索引不存储null值应该也是经过考虑后做的优化。

    31340

    【DB宝63】项目分享:使用ora2pg迁移Oracle19c到PG13并使用OGG配置实时同步

    一、项目目标 1、使用ora2pg迁移Oracle 19.3数据到PG13.2 使用swingbench压测生成oracle数据 部署ora2pg工具,实现Oracle数据迁移到PG数据库 2、配置OGG DG环境规划: 项目 Oracle源库 PG目标库 db 类型 单实例 单实例 db version 19.3.0.0.0 13.2 OS版本 CentOS7.6 64位 CentOS7.6 64位 OS BLOB object as PG BYTEA. - Export Oracle views as PG tables. - Export Oracle user defined types. - Provide 默认情况下,对象的拥有者为连接 Pg 数据库的用户。 --nls_lang code: 设置 Oracle 客户端的 NLS_LANG 编码。 cd DBD-Oracle-1.80 perl Makefile.PL make -j 8 && make install -- =============安装“DBD::Pg”=========

    32620

    一场数据库的 “会” 撕 呀 撕

    3 PG 高性能,并行扫描的功能,ORACLE 最强的功能是并行,PG 也具备并行最强的能力,HASH JOIN MERGE JOIN , NESTLOOP JOIN 其他开源数据库(其实就是说MYSQL PG 是可以进行并行操作,更有效的提供查询结果 4 PGORACLE 在稳定性上要高,更别提别的数据库了 5 PG 大部分用于金融的核心交易系统,与互联网的数据库对数据的严谨度不一样。 6 PG 对于 ORACLE 和 MYSQL 在进程方面,被KILL 后,只有PG还可以继续工作,其他的数据库已经挂了 7 PG 使用的通道加密与ORACLE 类似,在安全方面基本上与ORACLE 8 ORACLE 有的 PG 有,PG 有的 ORACLE 没有, 1 索引类型 ,PG 要比ORACLE 强,每种索引的类型都是有实际的作用的,不是摆设。 最后是PGPG 是真有胆,别人都避讳,甚至mysql直接祭出,我们是小ORACLEPG 的老大爷直接一句,灭了ORACLE 一家全族,我们PGORACLE 的性能,稳定性,功能,都要高。

    27521

    史上最全PostgreSQL体系结构

    Oracle来比较学习它的体系结构,比较容易理解。 @cs-db /oracle/soft/data/log 16:12 --> pwd /oracle/soft/data/log < pg@cs-db /oracle/soft/data/log 16: 12 --> < pg@cs-db /oracle/soft/data/log 16:12 --> ls -rtl total 8 -rw------- 1 pg pg 168 Nov 10 16:08 postgresql-16.log -rw------- 1 pg pg 502 Nov 10 16:08 postgresql-16.csv < pg@cs-db /oracle/soft/data /log 16:12 --> pwd /oracle/soft/data/log < pg@cs-db /oracle/soft/data/log 16:12 --> psql psql (11beta3

    2.2K20

    PostgreSQL体系结构

    一、引言 ---- PostgreSQL是最像Oracle的开源数据库,我们可以拿MySQL和Oracle来比较学习它的体系结构,比较容易理解。 @cs-db /oracle/soft/data/log 16:12 --> pwd /oracle/soft/data/log < pg@cs-db /oracle/soft/data/log 16 :12 --> < pg@cs-db /oracle/soft/data/log 16:12 --> ls -rtl total 8 -rw------- 1 pg pg 168 Nov 10 16 :08 postgresql-16.log -rw------- 1 pg pg 502 Nov 10 16:08 postgresql-16.csv < pg@cs-db /oracle/soft /data/log 16:12 --> pwd /oracle/soft/data/log < pg@cs-db /oracle/soft/data/log 16:12 --> psql psql

    48520

    POSTGRESQL VS ORACLE 泰坦之战 (翻译)

    一篇 2021年1月份国外的一篇文字关于评论 PG VS ORACLE的文字.看完觉,从技术的角度看,有点LOWER As the saying goes, change is the only constant PG 在1996年在开源世界开始有了自己的"声音",当然这是在他完全支持SQL 语言以后的事情. 并且支持所有的RDBMS的特性,如视图,存储过程,索引和触发器等, 除此以外,主键和外键和原子性. POSTGRESQL 本身在功能上也是可以和ORACLE正面刚,PG提供的隔离级别,中包含 RC RR SERIALIZABLE 都是齐全的,对于脏读是天生免疫的, 并且PG是支持完全的序列化,以及SNAPSHOT 来说PG 是一个更轻的, 对于使用的成本来说, POSTGRESQL 是完全能HOLD住与ORACLE 同等数据存储. 5 Compatibility – PostgreSQL Oracle has ORACLE 有一个强有力的PL/SQL的语言系统,PG除了有自己的语言系统同时也支持多种语言(python ,R 等语言的支持).

    17430

    Ora2pg 把oracle数据导入到postgres

    4 4.6 ora2pg 参数说明 5 5 Ora2pg 使用案例 6 5.1 ora2pg 数据导入到pg案例 6 5.1.1 编写配置案例 6 5.1.2 使用ora2pg 把数据下载到本地 7 5.1.3 查看文件的大小与行数 8 5.1.4 把数据导入到postgres中 8 5.1.5 校验pg中数据的准确性 8 1 Ora2pg特性 1、导出整个数据库模式(表、视图、序列、索引),以及唯一性 8、充分支持Oracle BLOB对象作为PG的BYTEA。 9、导出Oracle视图作为PG表。 10、导出定义的Oracle用户格式。 默认情况下,对象的拥有者为连接 Pg 数据库的用户。 --nls_lang code: 设置 Oracle 客户端的 NLS_LANG 编码。 5 Ora2pg 使用案例 5.1 ora2pg 数据导入到pg案例 5.1.1 编写配置案例 # vim ora2pg.conf # oracle client 安装地址 ORACLE_HOME

    1.3K40

    360°全方位比较PostgreSQL和MySQL

    前几年,Oracle收购了MySQL,导致MySQL的出现两个版本:商业版和社区版。对于后者,由于Oracle控制了MySQL的开发,受到了广大使用者的批评。 1、为什么使用PG PG作为开源、功能丰富的数据库,可与Oracle展开竞争。开发者也会将PG当做NoSQL数据库来使用。在云中和本地部署使用PG非常简单,也可以在docker容器等各个平台使用。 PG也是一个非常好的数据仓库,用于大数据上运行复杂的报告查询。 2、为什么使用MySQL MySQL具有社区版和商业版。商业版由Oracle管理。作为关系型数据库,部署和使用非常简单。 PG也可以使用Oracle的SQL Developer、pgAdmin、omnidb、dbeaver。监控工具有Nagios, Zabbix, and Cacti。 因为自从Oracle收购MySQL依赖,MySQL的采用率明显下降,开源领域的开发进度也受到冲击,招致MySQL用户的批评。 19、最佳环境 MySQL流行于LAMP栈,PG流行于LAPP栈。

    6.3K22

    360°全方位比较PostgreSQL和MySQL

    前几年,Oracle收购了MySQL,导致MySQL的出现两个版本:商业版和社区版。对于后者,由于Oracle控制了MySQL的开发,受到了广大使用者的批评。 1、为什么使用PG PG作为开源、功能丰富的数据库,可与Oracle展开竞争。开发者也会将PG当做NoSQL数据库来使用。在云中和本地部署使用PG非常简单,也可以在docker容器等各个平台使用。 PG也是一个非常好的数据仓库,用于大数据上运行复杂的报告查询。 2、为什么使用MySQL MySQL具有社区版和商业版。商业版由Oracle管理。作为关系型数据库,部署和使用非常简单。 PG也可以使用Oracle的SQL Developer、pgAdmin、omnidb、dbeaver。监控工具有Nagios, Zabbix, and Cacti。 因为自从Oracle收购MySQL依赖,MySQL的采用率明显下降,开源领域的开发进度也受到冲击,招致MySQL用户的批评。 19、最佳环境 MySQL流行于LAMP栈,PG流行于LAPP栈。

    27020

    相关产品

    • TDSQL PostgreSQL 版

      TDSQL PostgreSQL 版

      TDSQL PostgreSQL版是腾讯自主研发的分布式数据库系统。集高扩展性、高SQL兼容度、完整的分布式事务支持、多级容灾能力以及多维度资源隔离等能力于一身。采用no sharding 的集群架构,提供容灾、备份、恢复的能力。并完整兼容PostgreSQL与Oracle数据库。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券