• 2024-10-08lightdb pllua存储过程实测
    根据对pl/lua的相关介绍和一些说明如http://www.pgsql.tech/project_305_10000096,其性能相比plpgsql和plsql快不少,那实际到底如何呢?下面拿demo和一些实际的来对比下。1、lua安装。从https://www.lua.org/download.html下载最新版。因为pllua需要依赖lua.so动态库,所以不
  • 2024-09-29LightDB rownum使用示例及性能测试
    如下所示:lightdb@oradb=#explainanalyzeselect*from(selecta.*,rownumrnfrom(select*fromv,v1wherev.id=v1.idandnotexists(select1fromtwhereid<>v.id)andv1.id<>'31'orderbyv1.id)awhererownum<100000+1000)whe
  • 2024-09-25lightdb pllua存储过程实测
    根据对pl/lua的相关介绍和一些说明如http://www.pgsql.tech/project_305_10000096,其性能相比plpgsql和plsql快不少,那实际到底如何呢?下面拿demo和一些实际的来对比下。1、lua安装。从https://www.lua.org/download.html下载最新版。因为pllua需要依赖lua.so动态库,所
  • 2024-06-07lightdb hash index的性能和限制
    除了btree外,lightdb是支持hashindex的,但是总体来说支持的特性范围均不如btree索引,比如parallel没有btree索引智能,不支持=之外的操作,不支持bitmapindexscan,不支持哈希唯一索引(但可以通过uniquenotnull约束变量实现)等等,但在内存存储不使用固定长度的场景下还是很有优势的。
  • 2024-05-26lightdb 24.1新特性
    J.1. 版本发布13.8-24.1J.1.1.Oracle兼容J.1.2.plorasql增强J.1.3.MySQL兼容J.1.4.lightdb新特性J.1.5.ltjdbc增强版本发布日期:. 2024年04月30日J.1.1. Oracle兼容支持groupby常量,即支持按常量分组聚集,其中分组字段可以有一个或多个常量字段
  • 2024-05-16lightdb秒级增加列和删除列(not null带默认值)
    对数据量过亿的大表而言,dba最头疼的是随着业务变化增加带默认值的字段,以及修改字段的数据类型,在实现不好的数据库中,动不动执行半天,中途失败的话,还会卡半天。这在lightdb中是不会发生的。如下所示:lightdb@oradb=#createtablet(idint,vvarchar2(100));CREATETABLEligh
  • 2024-05-16lightdb mysql 8.0兼容之不可见主键
    数据库设计通常需要满足一定的范式要求,其中主键更是最基本的要求。不过,数据库管理系统却允许我们创建没有主键的表。这样的表在数据库中会带来查询性能低下、复制延迟甚至无法实现高可用配置等问题。为此,lightdb在22.1版本引入了一个新的功能,叫做不可见主键(GeneratedInv
  • 2024-05-16lightdb数据库超时相关控制参数
    在业务开发中,通常因为代码不规范、中间件缺陷、DBA误提交批量SQL等原因,会导致服务端连接一直存在、但是实际上并未在执行的情况,从而导致数据库连接泄露。为了防止这种异常情况积压,lightdb中包含了多个参数用于控制超时相关的行为:lock_timeout:控制多久拿不到锁就自动超时并回
  • 2024-04-26LightDB to Oracle 实时数据同步参考手册
    LightDBtoOracle实时数据同步参考手册目录:1.前言2.功能简介3.安装与配置3.1.配置数据库3.2.创建复制槽3.3.高可用环境配置4.启动5.功能详细说明5.1.命令行参数说明6.注意事项6.1.max_slot_wal_keep_size参数配置6.2.debug.dat注意事
  • 2024-04-19LightDB兼容扫描 - 事前SQL兼容迁移评估工具24.1支持MySQL --> TDSQL-PostgreSQL兼容性扫描
    兼容扫描工具下载地址:事前SQL兼容迁移评估工具使用说明:LightDB-事前SQL兼容迁移评估工具使用手册本次24.1版本新增了对MySQL迁移到TDSQL-pg的兼容性扫描。工具的具体使用方法请阅读使用说明文档,针对本次更新,涉及配置项targetDataBase改为MySQL-to-TDSQL-PostgreSQL。以下是
  • 2024-04-18benchmarksql压测lightdb的oracle模式
    一、编译安装BenchMarkSQL1.下载源码,输入ant编译。确保已经安装配置JDK环境,BenchMarkSQL是Java开发的。cdbenchmarksql/benchmarksql]$ant二、创建BenchMarkSQL测试数据库和角色[lightdb@linuxtestba65~]$ltsqlltsql(13.8-23.4)compatibletype:postgresqlType"
  • 2024-04-11lightdb 支持从父查询中返回子查询表中的 rowid
    背景在如下的sql中,selectrowidfrom(select1fromt);lightdb24.1以前会直接报错,说找不到rowid列。为了兼容Oracle,在24.1中,我们选择将告知子查询除了返回子查询应有的列之外,还需返回rowid列。样例以下样例sql说明了lightdb24.1中支持的rowid的功能:-
  • 2024-04-03lightdb 支持 merge partitions
    背景Oracle中支持很多种分区管理操作。其中mergepartitions会将多个连续分区合并成一个分区。lightdb24.1中支持了该功能。mergepartitions功能支持list和range分区,不支持hash分区。用例range分区CREATETABLEmeasurement(city_idintnotnul
  • 2024-03-12lightdb 支持 timestamp_to_scn 和 ora_rowscn
    背景Oracle的timestamp_to_scn函数能根据时间戳返回一个SCN(SystemChangeNumber).scn与事务有关,当系统有事务提交后,最新的scn就会变更成一个更大的值。ORA_ROWSCN在Oracle中记录了每一行提交后的scn.在LightDB中,scn被替换成xid,即事务ID.样例在LightDB
  • 2024-02-26LightDB-X 24.1 支持 Oracle DBMS_STATS.GATHER_TABLE_STATS 存储过程
    LightDB-X24.1支持OracleDBMS_STATS.GATHER_TABLE_STATS存储过程背景LightDB-X一直在不断提升对Oralce的兼容性,降低基于Oracle的业务系统迁移到LightDB-X的门槛。在24.1版本中支持了Oracle的DBMS_STATS.GATHER_TABLE_STATS存储过程,提高了对Oracle管理功能
  • 2024-02-21lightdb plorasql 编译期间检查功能增强
    背景lightdb为兼容Oracle的存储过程创建了plorsql核心插件。在lightdb23.4及之前版本,plorasql存储过程只支持基本的语法校验(check_function_bodies=on时)。从lightdb24.1版本开始,lightdb新增GUC参数lightdb_analyze_function_bodies,当该参数为on时,将会开启
  • 2024-01-22lightdb 允许建表时同时建立索引
    背景在Mysql的建表语法中,用户可以使用index关键字指定列名作为索引。在LightDB24.1中支持了该语法的部分特性。用例--usedefaultindexnamecreatetablefoo(aint,index(a));--createuniqueindexcreatetablefoo(aint,uniqueindex(a));--usecustom
  • 2024-01-22lightdb 允许常用比较操作符之前存在空格
    背景在Oracle中,>=,<=,!=,<>操作符字符之间允许存在空格。为兼容这种特性,LightDB24.1中对这些比较操作符作了特殊处理。用例selectcount(*)fromdualwhere1>=1;selectcount(*)fromdualwhere1<=1;selectcount(*)fromdualwhere1!=2;s
  • 2024-01-22lightdb 支持无参函数无括号使用
    背景在Oracle中,用户自定义的无参函数可以不带括号执行。为支持该特性,LightDB24.1版本中,允许用户使用无参函数的函数名调用函数,包括系统函数,如:now.用例createfunctionfn_noparam()RETURNSintlanguagesqlas$$select1;$$;--=1,simpleexprselectfn_noparam
  • 2024-01-22lightdb datetime 函数参数名支持
    背景在Oracle和PostgreSQL中datetime标识符并没有作为关键字,也不是数据类型。在Mysql中,datetime是数据类型名,但并不是保留关键字。在LightDB23.4及以前版本中,datetime被误当成可以作为列名的关键字,导致Oracle用户使用datetime作为函数参数名,函数名等情况都会报
  • 2024-01-10postgresql distinct on用法
    除了我们熟知的distinct外,postgresql还支持distincton,它的用途跟mysql没有启用ONLY_FULL_GROUP_BYSQL选项是一样的,针对声明的字段做分组,分组外的字段返回随机一行。如下:lightdb@oradb=#createtablet_distincton(idint,vtext);CREATETABLElightdb@oradb=#lightdb@ora
  • 2023-12-28lightdb/postgresql中plpgsql、函数与操作符、表达式及其内部实现
    PG_PROCPG_OPERATORpg_opclass用于定义索引上的相关操作符,一般来说是同一类数据类型。pg_opfamiliy定义了相互兼容的数据类型的操作符,关系见https://www.postgresql.org/docs/9.1/catalog-pg-opclass.html。pg8.3引入pg_opfamilies,原因:Create "operatorfamilies" toimprove
  • 2023-12-12DBeaver 中使用 LightDB 匿名块的注意事项
    DBeaver中使用LightDB匿名块的注意事项DBeaver是一款开源的通用数据库管理工具,本文介绍DBeaver执行SQL时会遇到的坑。背景DBeaver是一款开源的通用数据库管理工具,LightDB官方推荐使用DBeaver作为图形化客户端工具,配置方法可参考这篇博客。很多同学对DBeaver不
  • 2023-11-15lightdb 聚合函数支持order by
    在数据库中,对于聚合函数来说,由于不管表中有多少条数据,select聚合函数始终仅返回一条数据,故对其进行orderby是没有意义的,在原生PG中也对该种行为进行了限制:postgres=#\dt1Table"public.t1"Column|Type|Collation|Nullable|Default--------+--
  • 2023-10-26LightDB-ETL迁移工具常用问题排查
    1、无法删除约束根据以下SQL查询oracle目标库,如果约束名称包含小写字母,则迁移工具无法删除,它默认是按照大写处理的。SELECTac1.constraint_name,DBMS_METADATA.get_ddl('REF_CONSTRAINT',ac1.constraint_name,ac1.owner)FROMall_constraintsac1JOINall