- 博客(20)
- 问答 (1)
- 收藏
- 关注
原创 GBase 8c 执行计划层级
表扫描算子,用Seq Scan的方式扫描表t1。这一层的作用是把表t1的数据从buffer或者磁盘上读上来输送给上层节点参与hash join计算。表扫描算子,用Seq Scan的方式扫描表t2。这一层的作用是把表t2的数据从buffer或者磁盘上读上来输送给上层节点参与计算。Hash算子,作用是把下层计算输送上来的算子计算hash值,为后续hash join操作做数据准备。join算子,主要作用是将t1表和t2表的数据通过hash join的方式连接,并输出结果数据。
2022-10-27 14:35:04 250
原创 GBase 8c执行计划显示信息
为了测量运行时在执行计划中每个节点的开销,EXPLAIN ANALYZE或EXPLAIN PERFORMANCE会在当前查询执行上增加性能分析的开销。超支的数量依赖于查询的本质和使用的平台。EXPLAIN PERFORMANCE轻量化执行方式与EXPLAIN PERFORMANCE保持一致,在原来的基础上减少了性能分析的时间,执行时间与SQL执行时间的差异显著减少。除了设置不同的执行计划显示格式外,还可以通过不同的EXPLAIN用法,显示不同详细程度的执行计划信息。
2022-10-27 14:32:30 422
原创 GBase 8c执行计划概述
使用EXPLAIN命令可以查看优化器为每个查询生成的具体执行计划。EXPLAIN给每个执行节点都输出一行,显示基本的节点类型和优化器为执行这个节点预计的开销值。SQL执行计划是一个节点树,显示GBase 8c执行一条SQL语句时执行的详细步骤。每一个步骤为一个数据库运算符。
2022-10-27 14:31:05 598
原创 GBase 8c SMP使用建议
系统的CPU、内存、I/O和网络带宽等资源充足。SMP架构是一种利用富余资源来换取时间的方案,计划并行之后必定会引起资源消耗的增加,当上述资源成为瓶颈的情况下,SMP无法提升性能,反而可能导致性能的劣化。在出现资源瓶颈的情况下,建议关闭SMP。
2022-10-27 14:16:52 154
原创 GBase 8c SMP影响因素
在work_mem较小或者系统内存不充裕的情况下,使用SMP并行后,可能出现数据下盘,导致查询性能劣化的问题。在一般客户场景中,系统CPU利用率不高的情况下,利用SMP并行架构能够更充分地利用系统CPU资源,提升系统性能。但当数据库服务器的CPU核数较少,CPU利用率已经比较高的情况下,如果打开SMP并行,不仅性能提升不明显,反而可能因为多线程间的资源竞争而导致性能劣化。要实现并行扫描必定会增加I/O的资源消耗,因此只有在I/O资源充足的情况下,并行扫描才能够提高扫描性能。
2022-10-27 14:14:51 442
原创 GBase 8c SMP限制说明
SMP架构是一种利用富余资源来换取时间的方案,计划并行之后必定会引起资源消耗的增加,包括CPU、内存、I/O等资源的消耗都会出现明显的增长,而且随着并行度的增大,资源消耗也随之增大。当上述资源成为瓶颈的情况下,SMP无法提升性能,反而可能导致集群整体性能的劣化。
2022-10-27 14:13:35 127
原创 GBase 8c SMP使用限制
SMP特性通过算子并行来提升性能,同时会占用更多的系统资源,包括CPU、内存、I/O等等。本质上SMP是一种以资源换取时间的方式,在合适的场景以及资源充足的情况下,能够起到较好的性能提升效果;但是如果在不合适的场景下,或者资源不足的情况下,反而可能引起性能的劣化。SMP特性适用于分析类查询场景,这类场景的特点是单个查询时间较长、业务并发度低。然而在事务类大并发业务场景下,由于单个查询本身的时延很短,使用多线程并行技术反而会增加查询时延,降低系统吞吐性能。
2022-10-27 14:09:06 198
原创 GBase 8c service子命令
用户可通过 gs_dbmind service setup 子命令进行配置目录的初始化。该配置文件中可包括DBMind的配置文件、日志等内容。
2022-10-27 14:08:16 124
原创 GBase 8c相同表的并发UPDATE(二)
开启事务T1,不提交的同时开启事务T3,事务T1开始执行UPDATE,事务T3开始执行UPDATE,事务T1执行成功,事务T3等待超时后会出错。更新相同行时,事务T1未提交时,未释放锁,导致事务T3执行不成功。
2022-10-26 15:16:40 285 1
原创 GBase 8c相同表的并发UPDATE(一)
开启事务T1,不提交的同时开启事务T2,事务T1开始执行UPDATE,事务T2开始执行UPDATE,事务T1和事务T2都执行成功。更新不同行时,更新操作拿的是行级锁,不会发生冲突,两个事务都可以执行成功。
2022-10-26 15:14:53 583
原创 GBase 8c相同表的并发INSERT
开启事务T1,不提交的同时开启事务T2,事务T1执行INSERT完成后直接提交,事务T2中执行INSERT语句后执行查询语句,可以看到事务T1中插入的数据。开启事务T1,不提交的同时开启事务T2,事务T1执行INSERT完成后直接提交,事务T2中执行INSERT语句后执行查询语句,看不到事务T1中插入的数据。
2022-10-26 15:09:14 142
原创 GBase 8c 相同表的并发INSERT(一)
开启事务T1,不提交的同时开启事务T2,事务T1执行INSERT完成后,执行事务T2的INSERT语句,可以执行成功,读已提交和可重复读隔离级别下,此时在事务T1中执行SELECT语句,看不到事务T2中插入的数据,事务T2中执行查询语句看不到事务T1中插入的数据。
2022-10-26 15:08:16 156
原创 GBase 8c 相同表的INSERT和DELETE并发(二)
开启事务T1,不提交的同时开启事务T2,事务T1执行INSERT完成后,提交事务T1,事务T2再执行DELETE语句时,此时显示DELETE 0,事务T1提交完成后,事务T2依旧看不到事务T1的数据,一个事务中前后查询到的数据是一致的。开启事务T1,不提交的同时开启事务T2,事务T1执行INSERT完成后,提交事务T1,事务T2再执行DELETE语句时,此时显示DELETE 1,事务T1提交完成后,事务T2可以看到此条数据,可以删除成功。
2022-10-26 15:07:12 151
原创 GBase 8c 相同表的INSERT和DELETE并发(一)
开启事务T1,不提交的同时开启事务T2,事务T1执行INSERT完成后,执行事务T2的DELETE,此时显示DELETE 0,由于事务T1未提交,事务2看不到事务插入的数据;
2022-10-26 15:05:48 130
原创 GBase 8c 写入读写操作
UPDATE和DELETE执行前需要先查询数据,由于并发事务彼此不可见,所以UPDATE和DELETE操作是读取事务发生前提交的数据的快照。写入操作,是行级锁,当事务T1和事务T2并发更新同一行 时,后发生的事务T2会等待,根据设置的等待时长,若超时事务T1未提交则事务T2执行失败;INSERT和COPY是纯写入的操作。并发写入操作,需要等待,对同一个表的操作,当事务T1的INSERT或COPY未解除锁定时,事务T2的INSERT或COPY需等待,事务T1解除锁定时,事务T2正常继续。
2022-10-26 15:03:49 219
原创 GBase 8c事务隔离说明
GBase 8c数据库是基于MVCC(多版本并发控制),并结合两阶段锁的方式进行事务管理的。特点是读写之间不阻塞。SELECT是纯读操作,UPDATE和DELETE是读写操作。REPEATABLE READ:事务只能读到事务开始之前已提交的数据,不能读到未提交的数据以及事务执行期间其它并发事务提交的修改。
2022-10-26 15:00:32 119
原创 GBase 8c 表自动分析
autovacuum设置为on时,系统定时启动autovacuum线程来进行表自动分析,如果表中数据量发生较大变化达到阈值时,会触发表自动分析,即autoanalyze。GBase 8c提供GUC参数autovacuum,用于控制数据库自动清理功能的启动。
2022-10-26 14:56:15 402
原创 GBase 8c 分析表
ANALYZE支持的表类型有行/列存表。ANALYZE同时也支持对本地表的指定列进行信息统计。下面以表的ANALYZE为例。
2022-10-26 14:53:49 129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人