专栏名称: DBAplus社群
围绕数据库、大数据、PaaS云,顶级大咖、技术干货,运营几个月受众过十万!成为运维圈最专注围绕“数据”的学习交流和专业社群!欢迎投稿,加入探讨。
目录
相关文章推荐
数据中心运维管理  ·  突发!又一储能电站发生火灾 ·  3 天前  
数据中心运维管理  ·  别错过!配电间、配电室等防火措施,一篇全搞定 ·  2 天前  
数据中心运维管理  ·  如何为布线环境选择合适的网络电缆标签 ·  昨天  
AustinDatabases  ·  MongoDB ... ·  昨天  
51好读  ›  专栏  ›  DBAplus社群

openGauss魔改PG?它能兼容Oracle的数据库表吗?

DBAplus社群  · 公众号  · 数据库  · 2020-10-12 23:15

正文

请到「今天看啥」查看全文




会话级临时表中的数据可以跨事务而存在,不过当该会话结束时,临时表中的数据将随着会话的结束而被丢弃。与事务级临时表相同,在会话结束后,会话级临时表的结构以及元数据还存储在用户的数据字典中,需显式手动清除。


  • 在语句中定义表的字段结构方式创建



postgres=# CREATE TEMPORARY TABLE T_CONN_TMP

(

ID NUMBER,

NAME VARCHAR2(32)

) ON COMMIT PRESERVE ROWS;

CREATE TABLE


  • 通过select语句的查询结果创建表



postgres=# CREATE TEMPORARY TABLE T_CONN_TMP ON COMMIT PRESERVE ROWS

AS

SELECT * FROM TMP_TEST;

INSERT 0 0


三、表压缩


表压缩是对表数据进行压缩,达到节省空间的目的,压缩对于数据装载和DML操作有一定的CPU消耗。然而,这些消耗可以为I/O的减少而抵消。Oracle常用的压缩方式有两种:基础压缩以及OLTP压缩。


1、基础压缩


基础压缩只在direct path load的时候才会生效,对于普通的dml语句insert、update不会发生压缩,openGauss可以支持基础压缩。



postgres=# create table t_compress (id number) compress;

CREATE TABLE


2、OLTP压缩


OLTP压缩会对所有的DML生效,所以适用于OLTP系统。只有当新的block中的数据存放到达了阈值的时候才会引发块内的压缩操作,然后更多的数据加入到块中,再一次达到阈值,整个block会重新压缩,以达到最大程度的压缩级别。


这个过程会一直重复,直到Oracle数据库确定无法再从压缩上获得更高的效益。所以多数OLTP事务作用在压缩的块上面,会和未压缩的表上拥有相同的性能。只有部分操作会引发块内的压缩动作。OLTP压缩功能openGauss目前无法支持。



postgres=# create table t_oltp_compress (id number) compress for oltp;

ERROR:  syntax error at or near "for"

LINE 1: create table t_oltp_compress (id number) compress for oltp;


四、索引组织表


索引组织表是以索引的方式保存表的数据,数据根据主键的顺序进行排列的,这样就提高了访问的速度。缺点是由于索引块保存所有的字段的信息,就需要更多的叶子页面来保存数据,数据量较大的时候会造成访问效率降低。


此外,如果主键频繁修改,对应的行也就需要磁盘位置频繁修改,行需要在不同的块之间相互移动。通常在以下情况,会考虑使用索引组织表:


  • 表的宽度(即一行的数据长度)有限;

  • 表的主键不会或极少更改;

  • 表主要用于查询,DML操作较少;

  • 大部分的业务需求是根据主键查询行中其它列上的信息。


openGauss目前版本不支持索引组织表,对于应用程序来说,索引组织表的使用方式与堆表并无差异。



postgres=# CREATE TABLE T_ORG_INDEX

(

ID NUMBER,

NAME VARCHAR2(32),

PRIMARY KEY(ID)

)organization index;

ERROR:  syntax error at or near "organization index"

LINE 6: )organization index;


五、簇表


簇表也称为Cluster,在没有数据表和索引的时候,Cluster段是可以单独存在的。依据一定的规则,如连接键(Join Key),可以将多个数据表数据保存在同一个段中。并且依据一定场景实现快速检索连接。在openGauss中,无法兼容此功能。








请到「今天看啥」查看全文


推荐文章
数据中心运维管理  ·  突发!又一储能电站发生火灾
3 天前
数据中心运维管理  ·  如何为布线环境选择合适的网络电缆标签
昨天
老子道德经  ·  刘若英:一世得体
8 年前
指尖阅读  ·  除了钱,王思聪有什么了不起?
8 年前
旗扬时事  ·  一带一路”论坛背后的刀光剑影
8 年前