随笔分类 -  性能相关

摘要:前言 本文讨论一下KingbaseES数据库中如何计算数据库连接耗时。有这样一个场景,不借助第三方工具,在数据库服务端计算1000个数据库连接的总耗时,并取得每个连接耗时的平均值。怎样实现呢?我们可以借助kbbench工具。这是Kingbase数据库自带的一款客户端工具。 kbbench介绍 kbb 阅读全文
posted @ 2023-09-18 13:35 KINGBASE研究院 阅读(54) 评论(0) 推荐(0) 编辑
摘要:前言 本文讨论在KingbaseES数据库服务器中批量加载数据的方法,以及空数据库中的初始数据加载和增量数据加载的最佳做法。 批量加载方法 以下数据加载方法按照从最耗时到最不耗时的顺序排列: 1.运行单记录 INSERT 命令。 2.在每次提交中分批成 100 到 1000 行。可以使用事务块在每次 阅读全文
posted @ 2023-09-18 13:34 KINGBASE研究院 阅读(197) 评论(0) 推荐(0) 编辑
摘要:前言 队列理论在我们生活中的应用随处可见,例如我们去食堂打饭需要排队,我们生活中随处可见排队的场景。 在计算机领域中,性能诊断等地方使用队列理论的案例也很多。服务器硬件分为动态设备和静态设备。CPU和IO子系统属于动态设备,RAM属于静态设备,队列理论只对动态设备适用。 KingbaseES数据库中 阅读全文
posted @ 2023-09-18 13:33 KINGBASE研究院 阅读(92) 评论(0) 推荐(0) 编辑
摘要:前言 数据库正常运行离不开I/O的使用,在操作系统上,I/O又离不开存储的性能及使用方式,我们可以在存储层利用raid条带化技术使IOPS达到最佳性能。 本篇文章有助于确认数据库I/O使用率过高的原因 ,以及解决方法。 确定I/O使用率过高的原因 1.需要数据库内置的sys_stat_stateme 阅读全文
posted @ 2023-09-18 13:32 KINGBASE研究院 阅读(128) 评论(0) 推荐(0) 编辑
摘要:一、背景 在生产环境中,慢查询不仅影响系统、业务的正常处理。同时严重影响用户的使用感受。 二、表相关信息 2.1 表结构及索引: Table "yktcore.t_dtl_ymt" 栏位 | 类型 | 校对规则 | 可空的 | 预设 + + + + sys_sett_date | character 阅读全文
posted @ 2023-09-18 11:39 KINGBASE研究院 阅读(352) 评论(0) 推荐(0) 编辑
摘要:前言 有现场同事反馈 sql语句 like 使用后缀通配符 % 不走索引。 至于执行计划没走索引的原因与KingbaseES数据库中的排序规则相关。 测试 测试环境: KingbaseESV8R6C7 test=# \d test Table "public.test" Column | Type 阅读全文
posted @ 2023-05-09 19:39 KINGBASE研究院 阅读(222) 评论(0) 推荐(0) 编辑
摘要:背景 对于两个大表关联的场景,如果过滤条件的列值,存在高度倾斜,可以考虑根据反向滤值,进行过滤操作,减少连接的CPU时间。 数据准备 -- 状态表 tp01_state 记录 大表tp01 记录的多种状态 kingbase=# select count(*) from tp01; count 100 阅读全文
posted @ 2023-02-28 17:44 KINGBASE研究院 阅读(117) 评论(0) 推荐(0) 编辑
摘要:概述 分区修剪(Partition Pruning)是分区表性能的查询优化技术 。在分区修剪中,优化器分析SQL语句中的FROM和WHERE子句,以在构建分区访问列表时消除不需要的分区。此功能使数据库只能在与SQL语句相关的分区上执行操作。 参数 enable_partition_pruning 设 阅读全文
posted @ 2023-02-28 17:40 KINGBASE研究院 阅读(114) 评论(0) 推荐(0) 编辑
摘要:概述 对于分区表的大数据统计分析,由于数据量巨大,往往需要采用并行。但是数据库并行的效率相比分进程分表统计还是有比较大的差距。本文通过巧用dblink,实现分进程分分区统计数据。 例子 kingbase=# \d t751 分区表 "public.t751" 栏位 | 类型 | 校对规则 | 可空的 阅读全文
posted @ 2023-02-28 09:59 KINGBASE研究院 阅读(112) 评论(0) 推荐(0) 编辑
摘要:函数调用次数与性能 在查询语句中,如果 Select 子句调用了较为耗时的函数或子查询,需要特别考虑函数调用次数对于SQL整体执行时间的影响。 一、数据准备,SQL 语句 模拟较耗时的用户函数 确保执行子查询的时长是1秒。 create or replace function f001() retu 阅读全文
posted @ 2022-12-15 16:09 KINGBASE研究院 阅读(153) 评论(0) 推荐(0) 编辑
摘要:什么是提升子查询/子链接 SubLink,子查询/子链接,他们的区别:子查询不在表达式中子句,子链接在in/exists表达式中的子句。 若以范围表的方式存在,则是子查询; 若以表达式的存在,则是子连接; 出现在FROM关键字后的子句是子查询语句,出现在where/on等约束条件或者投影中的子句是子 阅读全文
posted @ 2022-12-13 18:55 KINGBASE研究院 阅读(124) 评论(0) 推荐(0) 编辑
摘要:maintenance_work_mem 参数说明与vacuum过程 maintenance_work_mem , autovacuum_work_mem。 如果没有设置autovacuum_work_mem,默认值是-1,则使用maintenance_work_mem的设置值。 首先这部分内存最大 阅读全文
posted @ 2022-12-13 09:20 KINGBASE研究院 阅读(213) 评论(0) 推荐(0) 编辑
摘要:前言: 我们知道Oracle 可以通过create index online 在线创建索引,而不影响其他会话修改数据,但Oracle 实际在online 创建索引的最后一步,实际还是需要进行锁升级,申请表级的S锁,因此,最后还是有可能堵塞其他会话。而KingbaseES 的两阶段创建索引的机制,则不 阅读全文
posted @ 2022-12-13 08:34 KINGBASE研究院 阅读(92) 评论(0) 推荐(0) 编辑
摘要:背景 我们在做综合应用项目的时候,通常会面临客户的每个应用系统使用各自的数据库,或者存放在不同的服务器。查询报表可能使用多个应用数据,这样就需要跨库读取数据表或视图。 KINGBASE_FDW 是一种外部访问接口,它可以被用来访问存储在外部的数据。想要使用fdw访问数据需要先确保:网络通,数据库访问 阅读全文
posted @ 2022-12-12 17:19 KINGBASE研究院 阅读(494) 评论(0) 推荐(0) 编辑
摘要:什么是QueryMapping KingbaseES Query Mapping 是一种查询映射功能。有过SQL优化经历的人都知道,对于有些SQL性能问题,可能需要涉及到SQL层面的修改,这不仅麻烦,而且在已上线的系统还存在很大的风险。KingbaseES V8R6 提供了query mapping 阅读全文
posted @ 2022-10-08 09:15 KINGBASE研究院 阅读(205) 评论(0) 推荐(0) 编辑
摘要:一、构建测试数据 create or replace function test_volatile(id integer) returns bigint volatile language sql as $$ select count(*) from t1 $$ ; / create or repl 阅读全文
posted @ 2022-09-23 17:46 KINGBASE研究院 阅读(54) 评论(0) 推荐(0) 编辑
摘要:说明: 日常业务系统在使用SQL语句进行查询时,开发人员容易将sql查询的子查询放到select语句中进行使用,会造成sql性能的下降。 数据准备: test=# test=# select count(1) from student; count 499 (1 行记录) test=# select 阅读全文
posted @ 2022-09-16 19:01 KINGBASE研究院 阅读(75) 评论(0) 推荐(0) 编辑
摘要:SQL 优化的过程可以分为逻辑优化和物理优化两个部分。逻辑优化主要是基于规则的优化,简称 RBO(Rule-Based Optimization)。物理优化会为逻辑查询计划中的算子选择某个具体的实现,需要用到一些统计信息,决定哪一种方式代价最低,所以是基于代价的优化 CBO(Cost-Based O 阅读全文
posted @ 2022-09-16 18:54 KINGBASE研究院 阅读(169) 评论(0) 推荐(0) 编辑
摘要:熟悉Oracle 的DBA都知道,Oracle 访问分区表时,对于没有提供分区条件的,也就是在无法使用分区剪枝情况下,优化器会根据全局的统计信息制定执行计划,该执行计划针对所有分区适用。在分析该方法利弊之前,我们先来看个例子,以确保对分区表的执行计划有所了解: 一、Oracle 构建数据: crea 阅读全文
posted @ 2022-09-06 15:33 KINGBASE研究院 阅读(176) 评论(0) 推荐(0) 编辑
摘要:概述 如何快速插入大量数据比如几千万上亿的带索引的数据表。 数据准备 准备一个拥有二十个索引的数据表。 kingbase=# \d+ bigtab Table "kingbase.bigtab" Column | Type | Collation | Nullable | Default | Sto 阅读全文
posted @ 2022-08-27 10:42 KINGBASE研究院 阅读(113) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示