随笔分类 - SQL
摘要:KingbaseES V008R006C006B0013版本新增支持闪回查询,闪回版本查询、闪回表到指定时间点。旧版本已支持闪回回收站技术。 闪回技术(闪回查询和闪回表到指定时间点)可以通过时间戳和CSN(commit sequence number)两种方式进行。 两种方式目前都需要依赖提交的时间
阅读全文
摘要:KingbaseES为“大字段“的物理存储提供了TOAST功能,通过合适的配置策略能够减少IO次数和扫描块数,进而提升查询速度。 TOAST:The Oversized-Attribute Storage Technique 特点: KingbaseES采用固定页面大小(通常是8Kb,不象oracl
阅读全文
摘要:KingbaseES格式化函数提供一套有效的工具用于把各种数据类型(日期/时间、integer、floating point和numeric)转换成格式化的字符串以及反过来从格式化的字符串转换成指定的数据类型。 下面列出了这些函数,它们都遵循一个公共的调用习惯:第一个参数是待格式化的值,而第二个是定
阅读全文
摘要:示例 创建函数 create function coalesce_("anyelement","anyelement") returns "anyelement" language sql as $$ select coalesce( $1,$2) $$; create aggregate any_
阅读全文
摘要:1.简介 lag与lead函数是跟偏移量相关的两个分析函数,通过这两个函数可以在一次查询中取出同一字段的前N行的数据(lag)和后N行的数据(lead)作为独立的列,从而更方便地进行进行数据过滤。 2.语法 LEAD/lag (expression [, offset [, default_valu
阅读全文
摘要:using子句用于在修改表字段类型的时候,进行显示的转换类型。 1.建表 create table t(id integer); 2.插入数据 insert into t select generate_series(1,10); 3.把id列类型修改为varchar test=# alter ta
阅读全文
摘要:用法 SELECT DISTINCT ON ( expression [, ...] ) 把记录根据[, …]的值进行分组,分组之后仅返回每一组的第一行。 需要注意的是,如果不指定ORDER BY子句,返回的第一条记录是不确定的。如果你使用了ORDER BY 子句,那么[, …]里面的值必须靠近OR
阅读全文
摘要:NULL值是关系型数据库系统中比较特殊的一种值,通常称为UNKNOWN或空值,即是未知的,不确定的。由于NULL存在着无数的可能,因此NULL值也不等于NULL值。 Oracle在创建索引时,不会存储NULL值,而KingbaseES在创建索引时则会存储NULL值.在查询时,如使用Column is
阅读全文
摘要:KingbaseES从V008R006C005B0041版本开始支持Oracle的Interval分区表功能。 Interval分区表是一种特殊的范围分区表。当执行INSERT或者UPDATE时,若数据超过所有现有范围分区时由数据库根据定义的间隔参数自动创建新的分区。 Interval分区只能指定一
阅读全文
摘要:前言 对于多列分区,可以选择单级多列的范围分区,也可以选择范围加子分区的方式。但二者在不同场景下对于性能是有差异的,这里的性能差异主要是分区裁剪引起的差异。 例子 创建两张分区表,采取不同的分区策略: create table t1_part_ranage(id1 integer,id2 integ
阅读全文
摘要:前言 Oracle 在对分区做DDL操作时,会使分区全局索引失效,需要加上关键字update global indexes。KingbaseES 同样支持全局索引。那么,如果对分区表进行DDL操作,那全局索引是否会失效了? 测试验证 1、创建测试数据 create table t1_part(id
阅读全文
摘要:数据脱敏,指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。 KingbaseES主要提供动态数据脱敏功能。 动态数据脱敏(Dynamic Data Masking)是与生产环境紧密关联的,访问敏感数据时实时地进行脱敏,主要用于直接访问生产数据的场景,在屏蔽敏感信息的同时也保证
阅读全文
摘要:1、前言 在处理用户问题过程遇到一个问题。用户通过pg_dump导出 bytea 对象时,当行的大小超过 1G时,会报错: [v8r6c5b41@dbhost01 ~]$ sys_dump -t t1_bytea -f 1.dmp -U system testsys_dump: error: Dum
阅读全文
摘要:背景 从上下级关系表中,任意一个节点数据出发,可以获得该节点的上级或下级。CTE的递归语法,或者 connect by 与 start with的 查询语法,能够实现这个需求。 当我们需要制作上下级关系的数据时,也可以使用CTE的递归语法。 举例 一个父节点拥有随机数量的子节点,通过控制层级数和随机
阅读全文
摘要:对大表进行分区,但避免长时间锁表 假设您有一个应用程序,该应用程序具有一个巨大的表,并且需要始终可用。它变得如此之大,以至于在不对其进行分区的情况下对其进行管理变得越来越困难。但是,您又不能使表脱机以修改为分区表。 这是处理问题的秘诀。它不一定适用于所有情况,特别是具有非常重的写入负载的表,但它可能
阅读全文
摘要:有时,KingbaseES数据库需要在单个或最少的步骤中导入大量数据,这通常称为批量数据导入。其中数据源通常是一个或多个大文件,这个过程有时可能非常慢。 造成性能不佳的原因有很多:索引、触发器、外键、GUID 主键,甚至预写日志 (WAL) 都可能导致延迟。 在本文中,我们将介绍一些将数据大容量导入
阅读全文
摘要:在层次查询中,如果想让“亲兄弟”按规矩进行升序排序就需要使用ORDER SIBLINGS BY 这个特定的排序语句,若要降序输出可以在其后添加DESC关键字。 通过这个实验给大家展示一下这个“亲兄弟”间的排序功能。 1.回望关系“树”,这棵树中的B和C是亲兄弟,F和G是亲兄弟。注意,D和E不是亲兄弟
阅读全文
摘要:KingbaseES支持JSON和JSONB。这两种类型在使用上几乎完全一致,主要区别是 JSON类型把输入的数据原封不动的存放到数据库中。JSONB类型在存放时把JSON解析成二进制格式。 JSONB支持在其上建索引,而JSON不能,这是JSONB的一个很大的优点。 JSON中会保留多余的空格,保
阅读全文
摘要:KingbaseESV8R6有个参数 track_commit_timestamp,用来开启跟踪事务提交的时间戳。 配置 编辑kingbase.conf,添加配置如下: track_commit_timestamp = on 接着重启kingbase实例。这时候在control file中查看tra
阅读全文
摘要:在分布式系统中,各个节点(或者事务参与方)之间在物理上相互独立,各节点之间无法确切地知道其它节点中的事务执行情况,所以多节点之间很难保证ACID,尤其是原子性。如果是单节点的事务,由于存在事务机制,可以保证其数据操作的ACID特性。如果要实现分布式系统事务的原子性,必须保证所有节点的数据写操作,要不
阅读全文