自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 问答 (2)
  • 收藏
  • 关注

原创 使用应用程序接口访问openGauss-JDBC

JDBC(Java Database Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问接口,应用程序可基于它操作数据。openGauss库提供了对JDBC 4.0特性的支持,需要使用JDK1.8版本编译程序代码,不支持JDBC桥接ODBC方式。在linux服务器端源代码目录下执行build.sh,获得驱动jar包postgresql.jar,包位置在源代码目录下。

2023-05-09 19:18:54 594

原创 libpq是openGaussC应用程序接口

libpq是openGaussC应用程序接口。libpq允许客户程序向openGauss服务器服务进程发送查询并且获得查询返回的库函数。同时也是其他几个openGauss应用接口下面的引擎,如ODBC等依赖的库文件。

2023-05-09 17:28:32 178

原创 使用应用程序接口访问openGauss,ODBC(Open Database Connectivity,开放数据库互连)

ODBC(Open Database Connectivity,开放数据库互连)是由Microsoft公司基于X/OPEN CLI提出的用于访问数据库的应用程序编程接口。应用程序通过ODBC提供的API与数据库进行交互,增强了应用程序的可移植性、扩展性和可维护性。openGauss目前在以下环境中提供对ODBC的支持。ODBC支持平台操作系统平台x86_64位CentOS 7.6ARM64位x86_64位ARM64位。

2023-05-09 17:28:28 282

原创 使用gsql访问openGauss

openGauss提供了在命令行下运行的数据库连接工具gsql。此工具除了具备操作数据库的基本功能,还提供了若干高级特性,便于用户使用。您需要提供数据库的名称以及数据库主节点的端口号。数据库安装完成后,默认生成名称为postgres的数据库。第一次连接数据库时可以连接到此数据库。其中postgres为需要连接的数据库名称,8000为数据库主节点的端口号。请根据实际情况替换。您可以用下面的命令获取各种openGauss的SQL命令的帮助语法。您可以用下面的命令查询openGauss中所有的数据库和描述信息。

2023-05-09 17:25:57 106

原创 openGauss开源社区下载对应平台的安装包

解压安装包,检查安装目录及文件是否齐全。从openGauss开源社区下载对应平台的安装包。

2023-05-09 17:24:09 181

原创 openGauss系列文章 其他因素对SMP性能的影响

SMP特性会增加资源的使用,而在高并发场景下资源剩余较少。所以,如果在高并发场景下,开启SMP并行,会导致各查询之间严重的资源竞争问题。一旦出现了资源竞争的现象,CPU、I/O、内存都会导致整体性能的下降。因此在高并发场景下,开启SMP往往不能达到性能提升的效果,甚至可能引起性能劣化。当数据中存在严重数据倾斜时,并行效果较差。例如某表join列上某个值的数据量远大于其他值,开启并行后,根据join列的值对该表数据做hash重分布,使得某个并行线程的数据量远多于其他线程,造成长尾问题,导致并行后效果差。

2023-05-09 16:20:32 80

原创 openGauss系列 资源对SMP性能的影响

SMP架构是一种利用富余资源来换取时间的方案,计划并行之后必定会引起资源消耗的增加,包括CPU、内存、I/O等资源的消耗都会出现明显的增长,而且随着并行度的增大,资源消耗也随之增大。下面对各种资源对SMP性能的影响情况分别进行说明。但当数据库服务器的CPU核数较少,CPU利用率已经比较高的情况下,如果打开SMP并行,不仅性能提升不明显,反而可能因为多线程间的资源竞争而导致性能劣化。要实现并行扫描必定会增加I/O的资源消耗,因此只有在I/O资源充足的情况下,并行扫描才能够提高扫描性能。

2023-04-20 14:23:17 79

原创 openGauss SMP适用场景与限制

本质上SMP是一种以资源换取时间的方式,在合适的场景以及资源充足的情况下,能够起到较好的性能提升效果;然而在事务类大并发业务场景下,由于单个查询本身的时延很短,使用多线程并行技术反而会增加查询时延,降低系统吞吐性能。其中3号算子为Local Gather算子,上面标有的“dop: 1/4”表明该算子的发送端线程的并行度为4,而接受端线程的并行度为1,即下层的4号HashAggregate算子按照4并行度执行,而上层的1~2号算子按照串行执行,3号算子实现了实例内并行线程的数据汇总。

2023-04-20 14:22:46 230

原创 openGauss 配置向量化执行引擎

参考向量化引擎的优势,如果查询语句中包含表达式计算、多表join、聚集等操作时,通过转换为向量化执行能够获得性能提升。从原理上分析,行存表转换为向量化执行,会产生转换的开销,导致性能下降。所以查询转换为向量化执行后,性能是否提升,取决于查询转换为向量化之后获得的性能提升能否高于转换产生的性能开销。而转换为向量化执行引擎后,扫描算子(SeqScan + VectorAdapter)的执行时间为470840ms,聚集操作的执行时间为212384ms,所以查询能够获得性能提升。

2023-04-20 14:21:36 134

原创 openGauss 数据库内存参数调优

数据库的复杂查询语句性能非常强的依赖于数据库系统内存的配置参数。数据库系统内存的配置参数主要包括逻辑内存管理的控制参数和执行算子是否下盘的参数。

2023-04-20 14:21:16 452

原创 openGauss 操作系统参数调优

在性能调优过程中,可以根据实际业务情况修改关键操作系统(OS)配置参数,以提升openGauss数据库的性能。

2023-04-20 14:20:10 467

原创 openGauss 分析作业是否被阻塞

数据库系统运行时,在某些业务场景下查询语句会被阻塞,导致语句运行时间过长,可以强制结束有问题的会话。

2023-04-20 14:18:53 92

原创 openGauss 查询最耗性能的SQL

系统中有些SQL语句运行了很长时间还没有结束,这些语句会消耗很多的系统性能,请根据本章内容查询长时间运行的SQL语句。

2023-04-20 14:18:01 172

原创 openGauss 性能日志

性能日志主要关注外部资源的访问性能问题。性能日志指的是数据库系统在运行时检测物理资源的运行状态的日志,在对外部资源进行访问时的性能检测,包括磁盘、OBS等外部资源的访问检测信息。openGauss不支持OBS、Hadoop,所以只有磁盘访问的监控信息。磁盘监控的访问信息主要在磁盘文件IO读写的时候进行统计。例如,拷贝文件时的读文件IO,正常SQL执行时访问OS表文件的pread系统调用。在出现性能问题时,可以借助性能日志及时定位问题发生的原因,能极大地提升问题解决效率。日志文件存储路径。

2023-04-20 14:16:51 121

原创 openGauss 确定性能调优范围

数据库性能调优通常发生在用户对业务的执行效率不满意,期望通过调优加快业务执行的情况下。正如“”小节所述,数据库性能受影响因素多,从而性能调优是一项复杂的工程,有些时候无法系统性地说明和解释,而是依赖于DBA的经验判断。尽管如此,此处还是期望能尽量系统性的对性能调优方法加以说明,方便应用开发人员和刚接触openGauss的DBA参考。

2023-04-20 14:16:19 100

原创 openGauss的总体性能调优思路

openGauss的总体性能调优思路为性能瓶颈点分析、关键参数调整以及SQL调优。在调优过程中,通过系统资源、吞吐量、负载等因素来帮助定位和分析性能问题,使系统性能达到可接受的范围。openGauss性能调优过程需要综合考虑多方面因素,因此,调优人员应对系统软件架构、软硬件配置、数据库配置参数、并发控制、查询处理和数据库应用有广泛而深刻的理解。性能调优过程有时候需要重启openGauss,可能会中断当前业务。

2023-04-20 14:12:46 237

原创 openGauss中运算符是一个保留关键字或字符,一般用在WHERE语句中,作为过滤条件。常见运算符如下。

所有比较操作符都是双目操作符,返回布尔类型数值。例如像1<2<3这样的表达式是非法的,因为布尔值和3之间无法用小于号(<)比较。常用的逻辑操作符有AND、OR和NOT,他们的运算结果有三个值,分别为TRUE、FALSE和NULL,其中NULL代表未知。比较操作符均为双目操作符,被比较的两个数据类型必须是相同的数据类型或者是可以进行隐式转换的类型。操作符AND和OR具有交换性,即交换左右两个操作数,不影响其结果。大部分数据类型都可用比较操作符进行比较,并返回一个布尔类型的值。描述:阶乘(前缀操作符)

2023-04-19 11:26:00 114

原创 openGauss SELECT语句

表名或视图名,名称前可加上模式名,如:schema_name.table_name。SELECT语句就像叠加在数据库表上的过滤器,利用SQL关键字从数据表中过滤出用户需要的数据。读取表customer_t1中指定字段c_customer_sk、c_customer_id。SELECT语句用于从表或视图中取出数据,结果被存储在一个结果表中,称为结果集。FROM子句中可以出现子查询,创建一个临时表保存子查询的输出。给表或复杂的表引用起一个临时的表别名,以便被其余的查询引用。有5种类型,详情请参见。

2023-04-19 11:25:10 104

原创 openGauss 查看对象

gsql工具提供了若干高级特性,便于用户使用。例如,将postgres数据库切换为数据库dp_tpcc。例如,查看表customer_t1的表结构。例如,查询ABORT的所有语法。查询当前数据库中的所有表。

2023-04-19 11:24:22 116

原创 openGauss DELETE语句

DELETE语句可以从指定的表里删除满足WHERE子句的行。如果WHERE子句不存在,将删除表中所有行,结果只保留表结构。

2023-04-19 11:23:44 138

原创 openGauss——UPDATE语句

修改已经存储在数据库中数据的行为叫做更新。用户可以更新单独一行,所有行或者指定的部分行。还可以独立更新每个字段,而其他字段则不受影响。UPDATE修改满足条件的所有行中指定的字段值,WHERE子句声明条件,SET子句指定的字段会被修改,没有出现的字段则保持它们的原值。

2023-04-19 11:23:01 253

原创 openGauss——INSERT INTO语句

在创建一个表后,表中并没有数据,使用这个表之前,需要向表中插入数据。INSERT INTO语句用于向表中插入新记录。该语句可以插入一行数据也可以同时插入多行数据。

2023-04-19 11:20:48 299

原创 创建数据库数据库安装完成后,默认生成名称为postgres的数据库。您需要自己创建一个新的数据库。

执行如下命令创建一个表,表名为customer_t1,表字段为c_customer_sk 、c_customer_id、c_first_name和c_last_name,每个表字段对应的数据类型为integer、char(5)、char(6)和char(8)。在当前数据库中创建一个新的空白表,该表由命令执行者所有。在不同的数据库中可以存放相同的表。您可以使用CREATE TABLE语句创建表。当结果显示为如下信息,则表示创建成功。新表中要创建的字段名。

2023-04-19 11:20:15 119

原创 数据库安装完成后,默认生成名称为postgres的数据库。您需要自己创建一个新的数据库。

创建数据库并不会选择使用它。您需要明确的指定使用新创建的数据库。使用 “\c + 数据库名” 来进入db_tpcc数据库。数据库安装完成后,默认生成名称为postgres的数据库。您需要自己创建一个新的数据库。使用 “\c + 数据库名” 进入已存在数据库。将db_tpcc数据库名称修改为tpcc。使用“\l”用于查看已经存在的数据库。使用“\l”用于查看已经存在的数据库。切换数据库为postgres数据库。要创建、修改或者删除的数据库名称。创建一个新的数据库db_tpcc。删除数据库tpcc。

2023-04-19 11:19:22 212

原创 数据库安装成功,登录后,可以使用\help语句查看所有openGauss的SQL语法

默认情况下,数据库安装成功,登录后,可以使用\help语句查看所有openGauss的SQL语法。""\h name命令可以查看具体的语法信息。例如:""

2023-04-19 11:18:39 56

原创 openGauss是一款关系型数据库管理系统(RDBMS)

openGauss是一款关系型数据库管理系统(RDBMS)。关系型数据库是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据。openGauss的数据库节点负责存储数据,其存储介质也是磁盘。逻辑视角下,可以看到数据库节点上对象包含表空间、数据库、数据文件、表、数据块。对象之间的关系如图。数据库逻辑结构图。

2023-04-19 11:17:46 211

原创 openGauss用户须知

openGauss版本号采用点分位命名规则(X.Y.Z)模式,其中X.0.0表示LTS版本,X.Y.0表示preview版本,Z表示补丁版本。正常每年会发布一个preview版本和一个LTS版本,preview版本作为社区创新版本,供用户联创测试使用;LTS版本作为长期支持版本,可规模上线使用。openGauss是一款极致性能、安全、可靠的关系型(OLTP)开源数据库。采用协议“木兰宽松许可证”(Mulan PSL V2),用户可以自由复制、使用、修改、分发,不论修改与否。

2023-04-18 10:45:05 279

原创 openGauss极简版安装

为了在防火墙开启的状态下,确保openGauss的正常使用,用户需要将同openGauss相关的服务、协议、IP以及端口添加到openGauss主机的防火墙白名单中。将各数据库节点的字符集设置为相同的字符集,可以在/etc/profile文件中添加“export LANG=XXX”(XXX为Unicode编码)。复杂的查询对内存的需求量比较高,在高并发场景下,可能出现内存不足。使用如下命令将各数据库节点/usr/share/zoneinfo/目录下的时区文件拷贝为/etc/localtime文件。

2023-04-18 10:43:15 288

原创 openGauss数据库的基本操作(1)

如果使用如下命令创建用户,请记得修改密码,openGauss的默认密码规则为:至少包含英文大小写、数字、特殊符号中的3类不同的字符组合。db_tpcc数据库创建完成后,就可以按如下方法退出postgres数据库,使用新用户连接到db_tpcc数据库执行创建表等操作。其中postgres为需要连接的数据库名称,8000为数据库主节点的端口号。本节描述使用数据库的基本操作。默认情况下,新的数据库对象是创建在“$user”模式下的,例如刚刚新建的表。数据库安装完成后,默认生成名称为postgres的数据库。

2023-04-18 10:41:39 1133

原创 使用C++ libpq编程语言访问openGauss

libpq是openGauss C应用程序接口。libpq允许客户程序向openGauss服务器服务进程发送查询并且获得查询返回的库函数。同时也是其他几个openGauss应用接口下面的引擎,如ODBC等依赖的库文件。

2023-04-18 10:12:18 218

原创 使用C++编程语言访问openGauss

SSL模式: 保证client.key*系列文件为600权限: 退回根目录,创建.postgresql目录,并将root.crt,client.crt,client.key,client.key.cipher,client.key.rand,client.req,server.crt,server.key,server.key.cipher,server.key.rand,server.req放在此路径下。设置为1时,将会打印psqlodbc驱动的mylog,日志生成目录为/tmp/。

2023-04-18 10:08:16 414

原创 使用gsql访问openGauss

gsql是openGauss提供的在命令行下运行的数据库连接工具。此工具除了具备操作数据库的基本功能,还提供了若干高级特性,便于用户使用。本节只介绍如何使用gsql连接数据库,关于gsql使用方法的更多信息请参考《工具与命令参考》中“客户端工具 > gsql”章节。

2023-04-18 09:57:19 64

原创 过Docker安装openGauss

本章节主要介绍通过Docker安装openGauss,方便DevOps用户的安装、配置和环境设置。

2023-04-18 09:30:37 394

原创 了解下openGauss的密态支持函数/存储过程

不支持在密态等值查询函数/存储过程中执行修改加密列定义的操作,包括创建加密表、添加加密列,由于执行函数是在服务端,客户端没法判断是否是需要刷新缓存,得断开连接后或触发刷新客户端加密列缓存才可以对该列做加密操作。函数/存储过程中的“执行动态查询语句”中的查询是在执行过程中编译,因此函数/存储过程中的表名、列名不能在创建阶段未知,输入参数不能用于表名、列名或以任何方式连接。在RETURNS、IN和OUT的参数中,不支持混合使用加密和非加密类型参数。不支持在函数/存储过程中执行其他查询加密列的函数/存储过程。

2023-04-17 15:55:42 149

原创 openGauss数据库共享存储特性简介

基础功能:SQL标准语法、数据类型、表(包括临时表、全局临时表、外部表)、视图、物化视图、外键、索引(包括btree索引、Gin索引、hash索引)、序列、函数、触发器、聚合函数median、ROWNUM、UPSERT、、jsonb数据类型、GB18030字符集。存储引擎增强:延迟备库、备机支持逻辑复制、并行逻辑解码、灰度升级、滚动升级、Hash索引、列存表主键唯一约束、Ustore存储引擎、段页式存储、发布订阅、行存表压缩、MOT内存表、NUMA-aware高性能优化等。_主备共享存储架构图如下图所示。

2023-04-17 15:48:25 133

原创 openGauss都做了哪些算子优化工作?

函数依赖,是多列统计信息的一种,可以描述属性之间的关联关系,其主要用途是提高选择率估算的准确性。",此时的转移状态初始化后为两个参数(total, count),然后遍历表的所有元组,total执行累加操作,count执行自增操作,最后把total/count和total分别作为avg函数和sum函数的返回结果。新型选择率模型充分利用基于直方图的统计信息,平衡计算量与准确性,充分考虑数据分布情况,通过轻量的计算,提高对低频值的估算准确率,能够使得优化器生成更优的执行计划,进而提高查询效率。

2023-04-17 15:41:59 57

原创 openGauss系统架构

在三层池化之上,是全场景的SQL标准,为应用提供数据分析、AI推理、图查询等的一系列查询接口,充分释放数据价值。针对多样性计算演进的趋势,openGauss实现了资源池化架构,首次实现计算、内存和存储三层解耦,层层池化带来更好的资源调度效率,更好的处理性能和创新的敏捷性。数字技术正在加速落地行业应用,支撑着丰富的在线应用与服务,产业数字化加速产生了海量的数据,图、流、时序和地图空间等多种数据类型层出不穷,这需要不同的算力架构做处理,数据库对计算的需求由单一的通用CPU向GPU、NPU等多样性计算演进。

2023-04-13 16:58:58 137

原创 openGauss AI特性

但是,由于各种各样客观因素的制约,在很长的一段时间内,人工智能技术并没有得到大规模的应用,甚至还经历了几次明显的低谷期。到了近些年,随着信息技术的进一步发展,从前限制人工智能发展的因素已经逐渐减弱,所谓的ABC(AI、Big data、Cloud computing)技术也随之而诞生。例如通过SQL-like语句实现推荐系统、图像检索、时序预测等功能,充分发挥数据库的高并行、列存储等优势,既可以避免数据和碎片化存储的代价,又可以避免因信息泄漏造成的安全风险;也可以通过人工智能的手段实现自治、免运维等。

2023-04-13 16:04:40 113

原创 openGauss SQL

SQL是用于访问和处理数据库的标准计算机语言。查询数据。在表中插入、更新和删除行。创建、替换、更改和删除对象。控制对数据库及其对象的访问。保证数据库的一致性和完整性。SQL语言由用于处理数据库和数据库对象的命令和函数组成。该语言还会强制实施有关数据类型、表达式和文本使用的规则。因此在SQL参考章节,除了SQL语法参考外,还会看到有关数据类型、表达式、函数和操作符等信息。

2023-04-13 10:04:56 97

原创 openGauss 如何解决“out of memory allocating xxx bytes after a total of xxx bytes”报错

如何解决编译过程中出现的“out of memory allocating xxx bytes after a total of xxx bytes”报错。解决办法:编译过程中降低make 并发数,或者直接使用make命令。使用一键式脚本的话需要修改脚本。报错原因:脚本中的编译过程都添加了-sj参数,同时机器配置较低,内存不足,并发数太大导致错误。

2023-04-13 10:02:33 590

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除