• 金仓数据库 KingbaseES插件参考手册(3. amcheck)


    3. amcheck

    3.1. 插件amcheck简介

    amcheck提供的函数可以让用户能验证关系逻辑结构的一致性,如果结构错误会报错。 B树的验证函数会检查逻辑结构中应该满足的多种条件。

    索引扫描以及其他操作的正确性依赖这些结构的正确性。例如,一些函数会验证B树页面中 所有索引项都按照逻辑顺序(比如text类型列上的B树索引项应该按照词典顺序)排列。

    如果这个条件由于某种原因不成立,我们可以预计受影响页面上的二分搜索将无法正确的执行索引扫描,导致整个SQL查询得到错误的结果。

    amcheck函数默认只能由超级用户使用。

    • 插件名为 amcheck

    • 插件版本 V1.2

    3.2. 插件amcheck加载方式

    CREATE EXTENSION amcheck;
    

    3.3. 插件amcheck的参数配置

    无需配置任何参数

    3.4. 插件amcheck的使用方法

    插件提供以下函数

    bt_index_check(index regclass, heapallindexed boolean) returns void
    

    bt_index_check验证指定的B树索引的逻辑结构正确性。

    示例

    SELECT bt_index_check('sys_package_oid_index', false);
     bt_index_check
    ----------------
    
    (1 row)
    

    示例中函数执行没有报错,指定索引的逻辑结构是正确的。

    bt_index_check对目标索引及其所属的堆表加AccessShareLock。这个锁模式和简单SELECT语句在关系上加的锁模式相同。bt_index_check不验证跨越父子关系的结构条件。在heapallindexed为true时会验证堆表的所有元组都有对应的索引项存在。这个行为是在完整验证和减少对业务的影响间的权衡,函数可以作为快速的轻量验证使用。

    bt_index_parent_check(index regclass, heapallindexed boolean, rootdescend boolean) returns void
    

    bt_index_parent_check验证指定的B树索引的逻辑结构正确性。

    当heapallindexed参数为true时,函数验证堆表的所有元组都有对应的索引项存在。和bt_index_check不同,函数会验证索引结构中的父子关系,会检查父节点是否有缺失的down link。当可选参数rootdescend值为true时,函数会通过从根页面开始搜索来查找叶节点的元组。bt_index_parent_check执行的检查是bt_index_check执行检查的超集。

    bt_index_parent_check对目标索引及其所属的堆表加ShareLock,这个所模式会阻塞INSERT、UPDATE以及DELETE的并发数据修改,同时防止所属堆表被VACUUM。

    注意该函数只在其运行期间而不是整个事务期间持有锁。bt_index_parent_check的额外验证有更大可能检测到索引结构的异常,但与bt_index_check不同,函数不能在开启hot_standby的备机上使用。

    3.5. 插件amcheck卸载方法

    DROP EXTENSION amcheck;
    

    3.6. 插件amcheck升级方法

    通过 ALTER EXTENSION升级插件。

    示例,升级到 1.1:

    ALTER EXTENSION amcheck UPDATE TO '1.1';
  • 相关阅读:
    csp-202203(在更)
    PC业务校验(已有该名称,已有该编码)
    踩坑了,又踩坑了!
    jmeter 简单数据写入器 创建文件失败
    电脑技巧:U盘装系统跟光盘装系统有什么区别,看完你就懂了!
    格雷码与普通二进制码的相互转换——学习笔记
    NET8中增加的简单适用的DI扩展库Microsoft.Extensions.DependencyInjection.AutoActivation
    doris---Rollup
    51系列—基于51单片机的电子万年历设计
    低市值Pow赛道解析,探寻百倍潜力项目
  • 原文地址:https://blog.csdn.net/arthemis_14/article/details/126488873