GBase8s数据库SQL语句性能缓慢从哪个方面入手分析

GBase8s数据库SQL语句性能缓慢从哪个方面入手分析,第1张

在实际的生产运行环境中,很多客户现场都看到开发人员和系统管理人员遇到很多有关于GBase 8s 数据库引起的性能问题,进而被多次问起如何进行GBase 8s 数据库性能调优,

性能优化原则

包括:

性能规划:深入了解应用与数据库的交互特征,确立良好的设计、开发、测试迭代过程,上线前消除模型上的性能瓶颈。

实例调优:建立性能基准,对比调节数据库、 *** 作系统、存储、网络等的配置,主动监控、消除瓶颈。

SQL 调优:书写高效 SQL,优化相关数据库对象,充分借助优化器,确定最佳执行计划。

性能优化流程

首先执行下面的初始检查:

– 获取直接用户的使用反馈,确定性能目标和范围。

– 获取性能表现好与坏时的 *** 作系统、数据库、应用统计信息。

– 对数据库做一次全面健康检查。

根据收集的信息,以及对应用特性的了解,构建性能概念模型,明确性能瓶颈所在,以及导致性能的根本原因。

– 首先应该排除 *** 作系统、硬件资源造成的瓶颈。

– 然后针对数据库系统性能进行分析

– 必要时,还需要检查应用日志,因为系统性能问题也可能由于应用非 SQL 部分造成瓶颈。

提出一系列针对的优化措施,并根据它们对性能改善的重要程度排序,然后逐一加以实施。不要一次执行所有的优化措施,必须逐条尝试,逐步对比。

通过获取直接用户的反馈验证调节是否已经产生预期的效果,否则,需要重新提炼性能概念模型,直到对应用特性了解进一步准确。

重复上述,直到性能达到目标或由于客观约束无法进一步优化。

常见调优技巧

找到 CPU 占用最高的 SQL

在 sysmaster 库中执行

select sqx_estcost, sqx_sqlstatement

from syssqexplain

order by sqx_estcost desc

1

2

3

注意:此时看到的仅仅是当前正在执行的 SQL

需要多看几次

onstat 命令

onstat -g act 得到当前正在执行的 SQL

根据 rstcb 列

onstat -u | grep 57c68220

1

从第三列 sessid 得到 SESSION

onstat -g ses SESSION 即可得到当时正在执行的 SQL

一般多找几个 threads 后,就基本可以确定问题 SQL

得到 SQL 后,利用 set explain on 分析其查询路径,看是否未利用索引,在对大表进行全表扫描,根据需要创建相应索引。

找到全表扫描较多的表及其 SQL

得到全表扫描较多的表

-- 系统顺序扫描较多时,被多次顺序扫描的大表,如果有,应该考虑增加索引

select first 5

substr(ttabname,0,20) tabname,

substr(dbsname,0,10) dbname,

nrowsrowsizepseqscans costs,

substr(pseqscans,0,8) seqscans,

substr(nrows,0,8) nrows

from sysmaster:sysptprof p , systables t,sysmaster:sysprofile s

where ptabname = ttabname

and pseqscans > svalue/50

and sname = 'seqscans'

--and svalue > 2000000 and nrows > 2000

order by 3 desc

1

2

3

4

5

6

7

8

9

10

11

12

13

利用 onstat –g ses 0 –r 5/ onstat –g stm 的输出信息,根据表名,找到可能的 SQL 语句。由于以上获取 SQL 的办法是有局限的,如果无法获取,建议通过查看应用日志或联系开发人员查看源代码的方式来找到。

利用 set explain on 分析其查询路径,确认是在对表进行全表扫描,根据需要创建相应索引。

这种概念上的含混不清之所以还在流传,主要是因为不懂技术的人而喜欢这些概念的大有人在,所以也并不在意要去澄清概念。“既然分布式数据库是MPP架构,那么MPP架构就等于分布式数据库应该也没什么问题吧。”于是大家就都不在意了。

比如,ShardingSphere转向可插拔架构后,其核心流程里已经没有分片功能了,分片会作为可插拔能力的一部分接入到服务中。对于数据库中间件来说,几乎属于产品重定义。与许多人对数据库中间件的固有认知相悖,因为在许多人的理解中,数据库中间件不就是为了分库分表而存在的吗?

理解关系数据库中的相关概念、关系模型及其三要素;理解关系的性质及类型;理解完整性规则在关系数据库中的作用;理解关系代数运算,掌握传统的集合运算与专门的关系运算;理解并掌握关系演算。

很多人在对比两者时,其实并不知道MPP的含义究竟是什么、两者的可比性到底在哪里。实际上,当人们在对比两者时,与其说是对比架构,不如说是对比产品。虽然MPP的原意是“大规模并行处理”,但由于一些历史原因,现在当人们说到MPP架构时,它们实际上指代的是“分布式数据库”,而Hadoop架构指的则是以Hadoop项目为基础的一系列分布式计算和存储框架。不过由于MPP的字面意思,现实中还是经常有人纠结两者到底有什么联系和区别,两者到底是不是同一个层面的概念。

GBase Migration Toolkit 迁移工具是 GBase 提供的一款可以实现异构数据库间数据迁移的工具。目前可以实现将源数据库(目前支持的源数据库有: ACCESS、Oracle、SQL Server、DM(DM6,DM7)、KingBase8、DB2、MySQL (MySQL5x,MySQL80)、ShenTong、GBase8sV83、GBase8t、GBase8s、 GBase8s_M、PostgreSQL 和 Teradata)中数据迁移到目标数据库(目前支持的目标数据库有:GBase8a、GBase8t、GBase8s 和 GBase8s_M)。 迁移工具具有简单易 *** 作的图形化界面,根据数据迁移需求创建相应的任务,并且可以对迁移任务进行相应的设置,实现多线程并发数据迁移。迁移工具是一个 C/S 结构的软件,安装简便,只需要获取安装包解压后即可使用。

要进行集群缩容,用户可点击集群管理页面右侧的按钮:->缩容,并在d出窗口中选择需要缩容的服务器,d出窗口显示待缩容的节点信息,以便用户确认。缩容的原则为:

同时部署GTM、DCS节点的高可用备节点,不能进行缩容 *** 作。

同时部署CN节点的高可用备节点进行缩容 *** 作,将DN节点数据进行迁移,而CN节点数据直接删除。

平台尽量不将同一高可用组的主节点和备节点分配到同一服务器。但当仅剩一个节点IP时,会打破此原则。

以上就是关于GBase8s数据库SQL语句性能缓慢从哪个方面入手分析全部的内容,包括:GBase8s数据库SQL语句性能缓慢从哪个方面入手分析、GBase 8a MPP Cluster数据库的数据分片是什么概念如何理解、gbase能否实现异构数据库间的迁移,有没有相应的迁移工具等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9878105.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存