随笔分类 - 性能相关
摘要:执行计划中的nestloop join 对比hash join 两种join 方式的定义 NESTE LOOP: 在嵌套循环中,内表被外表驱动,外表返回的每一行都要在内表中检索找到与它匹配的行。两个概念:驱动表(外部表)和内部表,这里用表这个次其实不是很准确,外部表和内部表可以是某张表的结果集。 在
阅读全文
摘要:1.表大小 如果表太大,数据很多,索引创建的时候,会导致创建索引的时间很慢。 如果表很大,可以考虑重新设计表结构或拆分表。还可以考虑使用分区表,使子分区的数据减少,创建分区表也可以使索引变小,增加索引创建速度,有助于查询效率。 2.索引类型 不同类型的索引建立的速度可能会有所不同,因为存储的结构不一
阅读全文
摘要:前言 数据库中的IO性能是优化中的重中之重,根据木桶原理,解决了IO这个最容易引起业务堵塞的问题,就能解决绝大部分性能问题。 下面从几个方面总结一下I/O优化问题。 第一,使用相对速度快的高性能存储设备。一般会考虑使用固态硬盘 (SSD) 或 RAID 阵列以获得更快的读写速度。 高性能低延迟的集中
阅读全文
摘要:当遇到数据库内存告警,并且操作系统内存使用不足,需要分析内存占用的方法。 KingbaseES数据库使用操作系统缓存机制,大量的内存很可能被BUFFER/CACHE占用了。 从free命令可以看到总共有2.5G多内存,使用了291MB,free剩下1.7GB多,BUFF/CACHE占了474MB。a
阅读全文
摘要:bitmap scan 解读 什么是bitmap scan? bitmap scan是pg中表的扫描计划的一种。 bitmap scan的作用就是通过建立位图的方式,将index scan 回表过程中对页访问的随机性IO转换为顺行性行为,从而减少查询过程中IO的消耗。 其优化理念是通过bitmap
阅读全文
摘要:KingbaseES数据库,已经对Mysql数据库进行了功能和使用方面的兼容。针对sql_mode配置使用情况,也做了相关的兼容适配,在最新kes的mysql数据库模式中,sql_mode参数已经对ONLY_FULL_GROUP_BY,ANSI_QUOTES,STRICT_ALL_TABLES这三个
阅读全文
摘要:背景 有客户提出一个问题。 一个类似这样的SQL语句,select count(id) from 为什么执行计划用全表扫,不用索引。id列上有主键。 分析 test=# explain (analyze, buffers ) select count(id) from t1; QUERY PLAN
阅读全文
摘要:优化器不想用索引,主要原因是优化器认为走索引还不如走顺序扫描代价低,因为索引扫描对应的是离散IO,我们可以通过调整random_page_cost告诉优化器随机IO代价值,非特殊情况不建议修改此值。 1.表太小场景 经常有开发问,为什么有索引而不走索引呢?因为优化器认为走索引方式太慢了! test=
阅读全文
摘要:KingbaseES 能使用多核 CPU 来加速一个 SQL 语句的执行时间,这种特性被称为并行查询。由于现实条件的限 制或因为没有比并行查询计划更快的查询计划存在,很多查询并不能从并行查询获益。但是,对于那些可以从并行查 询获益的查询来说,并行查询带来的速度提升是显著的。很多查询在使用并行查询时查
阅读全文
摘要:KingbaseES中explain命令来查看执行计划时最常用的方式。其命令格式如下: explain [option] statement 其中option为可选项,常用的是以下5种情况的组合: analyze:执行SQL并且显示实际的运行时间和其他统计信息,默认FALSE。注意:加了analyz
阅读全文
摘要:在处理数据库性能问题时,识别和分析慢查询及阻塞会话是至关重要的步骤。数据库管理员和开发人员常常需要依赖特定的工具和查询语句来追踪这些性能瓶颈。 当数据库响应变慢或出现处理延迟时,第一步通常是查找那些执行时间过长的查询,这些查询通常被称为“慢查询”。 同时,阻塞会话即那些因等待资源(如锁)而暂停执行的
阅读全文
摘要:KingbaseES 产品支持基于 Like 表达式的通配符模式匹配,通过合理的应用索引,可以提高查询性能。 like子句分以下四种情况 1、精确匹配型 like 'values' 2、右%号匹配like 'values%' 3、左%号匹配like '%values' 4、双%号匹配like '%v
阅读全文
摘要:一、初始化测试环境 # 数据库版本信息 KingbaseES V008R006C007B0012 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit 1. 创建分区表: cre
阅读全文
摘要:金仓数据库在sql层面提供了多种优化手段,但是这些的前提时需要保证我们的统计信息准确,优化器已经在正确信息下选择了它认为的最优的执行计划, 优化手段包括 •使用索引 索引解决的问题用于在进行表的扫描时进行加速,在执行计划中我们经常看到seq scan 它的含义时全表扫描,出现这种情况时我们就要去分析
阅读全文
摘要:1、整体思路 针对业务系统的出现的慢sql 我们的优化步骤大概分为以下几步 1、识别高负载语句 2、收集性能相关的数据 3、确定性能问题产生的原因 4、实施优化手段 下面我们针对这几个步骤展开进行讲解 1、识别高负载语句 金仓数据库 kingbase ES针对满语句识别有以下几个工具 • sys_s
阅读全文
摘要:针对操作系统性能瓶颈的判断和排查是数据库优化工作的一项重要技能,尤其是针对实例整体优化 操作系统的性能瓶颈排查无外乎四个方面 CPU、内存、磁盘、网络 针对这四个方面整理了一些相关心得和大家分享。 在判断系统瓶颈之前首先我们要知道操作系统资源的极限值在哪里 收集系统信息 首先CPU 我们更关心的时C
阅读全文
摘要:针对数据库的性能瓶颈排查方法分为两个层次1、实例级别性能问题排查 2、语句级别性能问题排查 实例级别 实例级别性能问题排查用来分析数据库实例整体是否存在性能瓶颈,然后根据排除出的疑似问题进行实例级别参数的优化。 使用场景包括 1、压测场景下数据库整体优化 2、上线之前数据库整体调优 3、业务整体响应
阅读全文
摘要:1、group by 分组语句 在SQL中group by主要用来进行分组统计,分组字段放在group by的后面;分组结果一般需要借助聚合函数实现。 group by语法结构 1、常用语法 语法结构 SELECT column_name1,column_name2, … 聚合函数1,聚合函数2 ,
阅读全文
摘要:IO 资源作为目前服务器中最昂贵的资源之一,是目前绝大部分业务系统主要的瓶颈资源,原因就在于服务器相关的硬件资源中IO资源的性能提升是难度最大的。存储的发展步伐远低于内存和CPU的发展。 在数据库管理系统中,IO是十分宝贵的,所以在数据库管理系统中我们希望操作尽可能在内存中完成,如果在一次事务中发生
阅读全文
摘要:今天遇到一个性能问题,再调优过程中发现耗时最久的计划是exist 部分涉及的三个表。 然后计划用left join 来替换exist,然后查询了很多资料,大部分都说exist和left join 性能差不多。 为了验证这一结论进行了如下实验 步骤如下 1、创建测试表 drop table app_f
阅读全文