当前位置: 首页 > news >正文

金仓数据库 KingbaseES 插件参考手册 S(3)

83. sys_freespacemap

83.1. 插件sys_freespacemap简介

sys_freespacemap提供了查看FSM页面的方法。 插件提供函数来显示FSM页面中记录的指定关系指定页面的值或是指定关系全部页面的值。 默认仅限超级用户、pg_stat_scan_tables 角色的成员使用。

  • 插件名为 sys_freespacemap

  • 插件版本 V1.2

83.2. 插件sys_freespacemap加载方式

插件为内置插件,自动加载。

83.3. 插件sys_freespacemap的参数配置

无需配置任何参数

83.4. 插件sys_freespacemap的使用方法

sys_freespacemap提供以下函数:

sys_freespace(rel regclass IN, blkno bigint IN) returns int2

返回指定关系指定块在FSM页面中记录的空闲空间值。

sys_freespace(rel regclass IN, blkno OUT bigint, avail OUT int2)

返回指定关系中每个块在FSM页面中记录的空闲空间值。返回(blkno bigint, avail int2)类型的集合,每一行对应关系中的一个块。

FSM页面中存储的空闲空间值并不是准确的。值会按块大小的1/256四舍五入,而且值在表页面被修改时不会实时更新。 对于索引来说,FSM页面记录的是空闲页面而不是页面中的空闲空间,返回值只代表页面是否为整个空闲。

83.5. 插件sys_freespacemap卸载方法

插件为内置插件,不允许卸载。

83.6. 插件sys_freespacemap升级方法

通过 ALTER EXTENSION升级插件。

示例,升级到 1.1:

ALTER EXTENSION sys_freespacemap UPDATE TO '1.1';

84. sys_jieba

84.1. 插件sys_jieba简介

sys_jieba是一个KingbaseES的扩展,主要用于全文搜索的中文分词。sys_jieba中文分词插件支持utf8字符集。

  • 插件名为 sys_jieba

  • 插件版本 V1.0

84.2. 插件sys_jieba加载方式

CREATE EXTENSION sys_jieba;

84.3. 插件sys_jieba的参数配置

无需配置任何参数

84.4. 插件sys_jieba的使用方法

CREATE EXTENSION sys_jieba;

SELECT * FROM ts_parse('jieba', 'KingbaseES中文分词插件测试');
 tokid |   token
-------+------------
     2 | KingbaseES
     2 | 中文
     2 | 分词
     2 | 插件
     2 | 测试
(5 rows)

SELECT to_tsvector('jiebacfg','KingbaseES中文分词插件测试');
                    to_tsvector
----------------------------------------------------
 'kingbasees':1 '中文':2 '分词':3 '插件':4 '测试':5
(1 row)

SELECT to_tsquery('jiebacfg', '分词');
 to_tsquery
------------
 '分词'
(1 row)

84.5. 插件sys_jieba的卸载方法

drop extension sys_jieba;

84.6. 插件sys_jieba升级方法

sys_jieba扩展插件通常随着KingbaseES安装包一并升级。通常情况下用户无须单独升级些插件。

85. sys_ksh

85.1. 插件sys_ksh简介

插件sys_ksh是KingbaseES 的一个扩展插件。主要功能是会话历史的分析,并针对报告呈现的性能瓶颈进行优化。

KingbaseES 在 V8R6 中引入了明细会话历史(Kingbase Session History)和相应的报告工具。

  • 插件名为 sys_ksh

  • 插件版本 V1.0

85.2. 插件sys_ksh加载方式

在使用 sys_ksh 之前,我们需要将他添加到 kingbase.conf 文件的 shared_preload_libraries 中,并重启 KingbaseES 数据库。

示例:

shared_preload_libraries = 'sys_stat_statements, sys_ksh'

进入 Kingbase 创建插件

create extension sys_ksh;

注:当sys_ksh.enable = on时由系统自动创建插件

85.3. 插件sys_ksh的参数配置

sys_ksh的参数在kingbase.conf中设置:

shared_preload_libraries ='sys_stat_statements, sys_ksh'
track_activities = on
sys_stat_statements.max = 10000
sys_stat_statements.track =all
sys_ksh.enable = on                # default = off
sys_ksh.ringbuf_size = 200000      # default = 100000
sys_ksh.history_days = 3           # default = 8;最小 2,最大 31
sys_ksh.language = 'english'       # default = ‘chinese’

上述参数的意义如下:

track_activities:跟踪活动会话的等待事件、执行SQL、状态等,默认:on

sys_stat_statements.max:设置sys_stat_statement跟踪的最大语句数,默认:5000

sys_stat_statements.track:跟踪统计SQL语句的访问,推荐用 'top',默认为'none'

sys_ksh.enable:启用或禁用sys_ksh数据收集

sys_ksh.ringbuf_size:设置sys_ksh ringbuf大小

sys_ksh.history_days:设置最大的sys_ksh历史数据存储

sys_ksh.language:KSH报告展示中文/英语信息

注:采集报告需要在开启:track_activities,并至少设定 sys_ksh.enable=on 的情况下才可以查看。开启该参数会有一定的性能损耗。

85.4. 插件sys_ksh的使用方法

85.4.1. 概述

sys_ksh 以每秒采样的方式进行会话和数据收集,并将采集数据放入内存的 Ringbuf 队列中,采集的数据主要包括:会话、应用、等待事件、命令类型、QueryId等。其主要使用场景是:当前或历史某个时点,发生了什么样的异常,系统在执行/运行什么任务。

85.4.2. 采集数据说明

KSH采集的数据主要包括以下信息:

字段

类型

描述

ts

timestamptz

采样时间

pid

int

进程ID

client_addr

inet

客户端IP地址

app_name

varchar(64)

应用名称

db_id

oid

数据库OID

db_name

varchar(64)

数据库名称

user_id

oid

用户OID

user_name

varchar(64)

用户名

phase

text

执行阶段,如:PARSE, PLAN, EXECUTION, UNKNOWN

event_type

text

等待事件类型

event

text

等待事件

query_id

uint8

QueryId

cmd_type

text

指令类型,如INSERT, SELECT, UPDATE, DELETE, UTILITY等

backend_type

text

后端类型,如:autovacuum, autovacuum worker等

state

text

运行状态 如running, idle等

is_simple

bool

简单查询语句标志

table_id

oid

IO操作变量的表OID

func

text

运行plsql的函数名

learder_pid

int

父进程pid(针对并行)

  • 保存于内存Ringbuf的数据可以通过视图perf.session_history查看:

SELECT * FROM perf.session_history;
  • 保存于数据库的历史数据可以通过视图perf.ksh_history查看:

SELECT * FROM perf.ksh_history;

85.4.3. 生成报告

SELECT perf.ksh_report({start_ts}, {duration}, {slot_width}, {write_to_file});

上述参数说明:

start_ts: 报告开始时间,默认:当前时间-15分钟

duration: 报告时长,默认到15分钟,最大不超过60

slot_width: 报告最小区间,输入0时系统自动计算合适的宽度

write_to_file: 是否输出到sys_log目录,默认否

  • 报告详细说明,请参考 sys_ksh 文档

85.5. 插件sys_ksh卸载方法

进入 Kingbase 创建插件

示例:

drop extension sys_ksh CASCADE;

85.6. 插件sys_ksh升级方法

sys_ksh扩展插件通常随着KingbaseES安装包一并升级。通常情况下用户无须单独升级些插件。

86. sys_kwr

86.1. 插件sys_kwr简介

插件sys_kwr是KingbaseES 的一个扩展插件。主要功能是通过周期性自动记录性能统计相关的快照,分析出KES的操作系统运行环境、数据库时间组成、等待事件和TOP SQL等性能指标,为数据库性能调优提供指导。

sys_kwr 是 Kingbase Auto Workload Repertories 的简称,可以对 KingbaseES 的负载信息自动以快照的方式进行记录和保存,并提供负载相关的性能报告。

  • 插件名为 sys_kwr

  • 插件版本 V1.3

86.2. 插件sys_kwr加载方式

KingbaseES数据库默认将他添加到 kingbase.conf 文件的 shared_preload_libraries 中,重启数据库时自动加载。

示例如下

shared_preload_libraries = 'sys_kwr'

86.3. 插件sys_kwr的参数配置

要想使用 KWR 的全部报告功能,建议在kingbase.conf里添加以下6个参数

track_sql = on
track_instance = on
track_wait_timing = on
track_counts = on
track_io_timing = on
track_functions = 'all'
sys_stat_statements.track = 'top'
sys_kwr.enable = on

上述参数的意义如下

track_sql:开启统计 sql 时间,等待事件,IO ,默认为off

track_instance开启统计实例级IO,关键活动,锁,默认为off

track_wait_timing开启累积式等待事件记录等待时间的功能,默认为off

track_counts统计数据库活动,默认为on

track_io_timing开启IO计时统计功能,默认为off

track_functions开启函数统计功能,推荐用 'all',默认为'none'

sys_stat_statements.track跟踪统计SQL语句的访问,推荐用 'top',默认为'none'

sys_kwr.enable自动对收集到的数据生成快照并保存到kwr库里,默认为off

其他参数一般情况下使用默认值即可

sys_kwr.topnkwr报告显示topn条件记录,默认20条

sys_kwr.history_dayskwr快照数据保留天数,默认8天

sys_kwr.intervalkwr自动采集快照的间隔,默认60分钟

sys_kwr.languageKWR报告使用语言,默认为中文(chinese 或 chn),可选为英文(english 或eng)

sys_stat_statements.track_parsepg_stat_statements记录parse次数和时间,默认开启

sys_stat_statements.track_planpg_stat_statements记录plan次数和时间,默认开启

86.4. 插件sys_kwr的使用方法

86.4.1. 概述

sys_kwr通过周期性自动记录性能统计相关的快照,分析出KES的操作系统运行环境、数据库时间组成、等待事件和TOP SQL等性能指标,为数据库性能调优提供指导。

1、SQL语句执行过程中产生的等待事件, IO 和执行时间

2、Top SQL

3、数据库对象统计信息

4、数据库实例统计信息

86.4.2. 自动快照

KingbaseES启动服务后,sys_kwr collector 后台进程后会每个小时采集一次负载信息,并保存到kwr库(test)

查询快照列表

test=# select * from perf.kwr_snapshots;
snap_id |       snap_time        | sess_count
--------+------------------------+------------
      1 | 2021-12-07 17:51:02+08 |          1
      2 | 2021-12-07 17:51:03+08 |          1
      3 | 2021-12-07 17:51:04+08 |          1
(3 rows)

86.4.3. 手动快照

手工快照通过SQL语句来执行

test=# select * from perf.create_snapshot();
create_snapshot
-----------------
                5
(1 row)

86.4.4. 生成kwr报告

有了负载信息的快照数据后,就可以调用以下2个函数来生成kwr报告

select perf.kwr_report(start_id integer, end_id integer, format text = 'text');
select perf.kwr_report_to_file(start_id integer, end_id integer, format  text, file_path text);

perf.kwr_report()生成报告并加报告内容自动保存到KingbaseES的data/sys_log目录下。

perf.kwr_report_to_file()则生成报告并将内容保存指定的file_path路径下。

函数参数说明

start_id起始快照ID

end_id结束快照ID

format报告的格式,只支持'text'和'html'格式,建议使用'html'格式。

file_path在服务器上保存报告文件的全路径,必须有写文件的权限。

86.4.5. 生成html报告

select * from perf.kwr_report(1,2,'html');
  • 查看 KWR 报告,请参考 KWR 文档。

86.5. 插件sys_kwr卸载方法

进入 Kingbase 创建插件

示例

drop extension sys_kwr;

86.6. 插件sys_kwr升级方法

通过 alter extension 来升级插件。

示例,由 1.2 升级到 1.3

ALTER EXTENSION sys_kwr UPDATE TO '1.3';

87. sys_prewarm

87.1. 插件 sys_prewarm 简介

插件 sys_prewarm 是 KingbaseES 的一个扩展插件。提供了一种方便的方法把关系数据载入到操作系统缓冲区或者 KES 缓冲区。可以使用 sys_prewarm 函数手工执行预热,或者通过在 shared_preload_libraries 中包括 sys_prewarm 来自动执行预热。在后一种情况中,系统将运行一个后台工作者 autoprewarm master,它会周期性地把共享内存中的内容记录在一个名为 autoprewarm.blocks 的文件中,并且在重新启动后用两个后台工作者重新载入那些块。

  • 插件名为 sys_prewarm

  • 插件版本 V1.2

87.2. 插件 sys_prewarm 加载方式

通过 create extension 来加载插件。

示例:

create extension sys_prewarm;

如果使用自动预热,则还需要设置 shared_preload_libraries:

shared_preload_libraries = 'sys_prewarm'

87.3. 插件 sys_prewarm 的参数配置

手工预热无需配置任何参数。

自动预热包括 2 个参数:

sys_prewarm.autoprewarm (boolean)

控制服务器是否应该运行 autoprewarm 工作者。默认这个参数为 on。这个参数只能在服务器启动时设置。

sys_prewarm.autoprewarm_interval (int)

这是更新 autoprewarm.blocks 的间隔。默认是 300 秒。如果被设置为 0,该文件将不会以常规的间隔方式转储,而是只在服务器关闭时转储。

87.4. 插件 sys_prewarm 的使用方法

KingbaseES 加载 sys_prewarm 插件后,通过函数来对关系表进行手工预热或自动预热。

手工预热使用 sys_prewarm() 函数:

sys_prewarm(regclass, mode text default 'buffer', fork text default 'main',
            first_block int8 default null, last_block int8 default null)
RETURNS int8

该函数第一个参数是要预热的关系。第二个参数是要使用的预热方法(prefetch、read 或者 buffer)。第三个参数是要被预热的关系分叉,通常是 main。 第四个参数是要预热的第一个块号(NULL等同于零)。第五个参数是要预热的最后一个块号(NULL表示一直预热到关系的最后一个块)。返回值是被预热的块数。

手工预热示例:

select sys_prewarm('t1');

自动预热使用以下 2 个函数:

autoprewarm_start_worker() RETURNS void

该函数启动主要的autoprewarm工作者。这通常将会自动发生,但是如果没有在服务器启动时配置自动预热并且用户希望在稍晚的时候启动该工作者,这个函数就能发挥作用。

autoprewarm_dump_now() RETURNS int8

该函数立即更新 autoprewarm.blocks。如果 autoprewarm 工作者没有运行但用户希望它在下一次重启后运行,则这个函数会很有用。返回值是写入到 autoprewarm.blocks 中的记录数。

87.5. 插件 sys_prewarm 卸载方法

通过 drop extension 来卸载插件。

示例:

drop extension sys_prewarm;

如果使用自动预热,设置了 shared_preload_libraries,则可以删除 'sys_prewarm'。

shared_preload_libraries = ''

87.6. 插件 sys_prewarm 升级方法¶

通过 alter extension 来升级插件。

示例,由 1.1 升级到 1.2:

ALTER EXTENSION sys_prewarm UPDATE TO '1.2';

相关文章:

  • Flutter聊天布局之图片视频上传、显示、保存到相册
  • Deep Laplacian Pyramid Networks for Fast and Accurate Super-Resolution
  • 基于SSM框架实现学生管理系统
  • JavaScript聊天框插入表情: 点击表情时输入框失焦, 无法插入到输入框.
  • 使用esxcli命令升级VMware ESXi补丁
  • java调用python文件的几种方式【超细讲解!】
  • c++ 关于bfs和dfs的相对统一写法
  • 2023年湖北三类人员安全员A证报考条件需要什么资料?
  • Maven进阶-多环境开发与跳过测试
  • Activiti7工作流引擎
  • 物联网边缘-物联网准入或接入安全防护产品及解决方案
  • Java-序列化和反序列化
  • 怎么批量转换图片格式?这些方法帮助你一键转换
  • ADB基本用法
  • 自定义 Hook(State Hook)_web前端培训
  • @angular/forms 源码解析之双向绑定
  • 【技术性】Search知识
  • 【面试系列】之二:关于js原型
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • egg(89)--egg之redis的发布和订阅
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • java 多线程基础, 我觉得还是有必要看看的
  • laravel5.5 视图共享数据
  • linux安装openssl、swoole等扩展的具体步骤
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • quasar-framework cnodejs社区
  • Service Worker
  • Spring声明式事务管理之一:五大属性分析
  • 动态魔术使用DBMS_SQL
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 计算机常识 - 收藏集 - 掘金
  • 老板让我十分钟上手nx-admin
  • 目录与文件属性:编写ls
  • 入口文件开始,分析Vue源码实现
  • 软件开发学习的5大技巧,你知道吗?
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • ​一些不规范的GTID使用场景
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)SpringBoot3---尚硅谷总结
  • (转载)从 Java 代码到 Java 堆
  • *** 2003
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .bat批处理出现中文乱码的情况
  • .NET CF命令行调试器MDbg入门(三) 进程控制