首页 > 数据库 >GaussDB可维护性--支持SQL PATCH

GaussDB可维护性--支持SQL PATCH

时间:2024-10-30 10:21:50浏览次数:1  
标签:语句 -- GaussDB 可维护性 PATCH 调优 SQL Unique ID

支持SQL PATCH

可获得性

本特性自503.1.0版本开始引入。

特性简介

SQL PATCH能够在避免直接修改用户业务语句的前提下对查询执行的方式做一定调整。在发现查询语句的执行计划、执行方式未达预期的场景下,可以通过创建查询补丁的方式,使用Hint对查询计划进行调优或对特定的语句进行报错短路处理。

客户价值

在业务产生查询计划不优导致的性能问题或系统内部错误导致服务不可用问题时,可以在数据库内通过运维函数调用对特定的场景进行调优或提前报错,以规避更严重的问题,能够大幅降低上述问题的运维成本。

特性描述

SQL PATCH主要设计给DBA、运维人员及其他需要对SQL进行调优的角色使用,用户通过其他运维视图或定位手段识别到业务语句存在计划不优导致的性能问题时,可以通过创建SQL PATCH对业务语句进行基于Hint的调优。目前支持行数、扫描方式、连接方式、连接顺序、PBE custom/generic计划选择、语句级参数设置、参数化路径的Hint。此外,对于部分由特定语句触发系统内部问题导致系统可服务性受损的语句,在不对业务语句变更的情况下,也可以通过创建用于单点规避的SQL PATCH,对问题场景提前报错处理,避免更大的损失。

SQL PATCH的实现基于Unique SQL ID,所以需要打开相关的运维参数才可以生效(enable_resource_track = on,instr_unique_sql_count > 0),Unique SQL ID在WDR报告和慢SQL视图中都可以获取到,在创建SQL PATCH时需要指定Unique SQL ID,对于存储过程内的SQL则需要设置参数 instr_unique_sql_track_type = 'all' 后在dbe_perf.statement_history视图中查询Unique SQL ID。

特性增强

无。

特性约束

  1. 仅支持针对Unique SQL ID添加补丁,如果存在Unique SQL ID冲突,用于Hint调优的SQL PATCH可能影响性能,但不影响语义正确性。
  2. 仅支持不改变SQL语义的Hint作为PATCH,不支持SQL改写。
  3. 不支持逻辑备份、恢复。
  4. 不支持在DN上创建SQL PATCH。
  5. 仅初始用户、运维管理员、监控管理员、系统管理员用户有权限执行。
  6. 库之间不共享,创建SQL PATCH时需要连接目标库。如果创建SQL PATCH的CN被剔除并触发全量Build,则会继承全量Build的目标CN中的SQL PATCH,因此建议在各个CN上尽量都创建对应的SQL PATCH。
  7. CN之间由于Unique SQL ID不同,不共享SQL PATCH,需要用户手动在不同的CN上创建对应的SQL PATCH。
  8. 限制在存储过程内的SQL PATCH和全局的SQL PATCH不允许同时存在。
  9. 使用PREPARE + EXECUTE语法执行的预编译语句执行不支持使用SQL PATCH。
  10. SQL PATCH不建议在数据库中长期使用,只应该作为临时规避方法。遇到内核问题所导致的特定语句触发数据库服务不可用问题,以及使用Hint进行调优的场景,需要尽快修改业务或升级内核版本解决问题。并且升级后由于Unique SQL ID生成方法可能变化,可能导致规避方法失效。
  11. 当前,除DML语句之外,其他SQL语句(如CREATE TABLE等)的Unique SQL ID是对语句文本直接哈希生成的,所以对于此类语句,SQL PATCH对大小写、空格、换行等敏感,即不同的文本的语句,即使语义相同,仍然需要对应不同的SQL PATCH。对于DML,则同一个SQL PATCH可以对不同入参的语句生效,并且忽略大小写和空格。

依赖关系

本特性依赖于资源实时监控功能。对于不同的语句,数据库无法保证生产的Unique SQL ID哈希值全局唯一,如果不同的语句生成的Unique SQL ID冲突,会导致SQL PATCH命中预期外的其他语句。其中使用DBE_SQL_UTIL.create_hint_sql_patch/DBE_SQL_UTIL.create_remote_hint_sql_patch接口创建的用于调优的Hint PATCH可能会影响错误命中语句的性能,使用DBE_SQL_UTIL.create_abort_sql_patch/DBE_SQL_UTIL.create_remote_abort_sql_patch接口创建的用于避险的Abort PATCH需要谨慎使用。

  更多详情请参考GaussDB 文档中心:https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/productdesc/qlh_03_0001.html

标签:语句,--,GaussDB,可维护性,PATCH,调优,SQL,Unique,ID
From: https://www.cnblogs.com/yuan-er/p/18515247

相关文章

  • latex workshop在vscode中的settings.json设置
    //latex"latex-workshop.latex.autoBuild.run":"never","latex-workshop.showContextMenu":true,"latex-workshop.intellisense.package.enabled":true,"latex-workshop.message.error.show":fals......
  • 基于Python拉取快手直播视频流,并将视频流切割成一定时长的视频片段
    通过访问快手的直播间网页,从网页的script标签内部提取出关于该直播间的相关信息的JSON串,最终从JSON里提取出直播视频流的hls地址和直播间的其他信息。附代码importjsonimportrandomimportreimportsubprocessimportsysimporttimefromenumimportEnumfromurlli......
  • HTTP知识点
    常见题目:1.HTTP常见的状态码1xx服务器收到请求,但还没返回数据。(不常用)2xx请求成功,如2003xx重定向,如3024xx客户端错误,如4045xx服务端错误,如500-常见状态码:200成功301永久重定向(配合location,浏览器自动处理),location是新的地址,浏览器会记住这个地址,浏览器永远......
  • 学习高校课程-系统设计与分析-进入设计领域(lec6)
    IndexFundamentalDesignTasksandActivities基本设计任务和活动UnderstandingthechallengesinIteration0了解迭代0中的挑战StructuralModelingandBehaviorModeling结构建模和行为建模MoreonCommonUsedDiagramsPackageDiagram封装图InteractionDia......
  • 开箱即用!智能文档处理“百宝箱”
      10月24日至26日,CSDN第五届“1024程序员节”在长沙召开,来自合合信息的常扬老师在“模型与工具”论坛上分享了合合信息的智能文档处理“百宝箱”,系统介绍了TextInParseX、acge-embedding、markdown_tester三种工具。正好我最近也在做一些扫描件的文档整理,就让我们一起来了解......
  • 2024湖南省赛题解(不全)
    湖南省赛K题题意你可以免费移动经过一条边,求在满足在任意点开始都能成功渡劫的最小花费。思路建一个虚拟源点,连向每一个点,将这条边的边权设为这个点渡劫需要的花费。跑最短路,这样会把每一种情况囊括在内,但是没有考虑免费的移动。建一个dist2数组,用来记录每一个点当前......
  • 网站有多个域名,使用哪种类型的SSL证书?
    当网站拥有多个域名时,可以选择以下几种类型的SSL证书来满足安全需求:一、多域名SSL证书(SAN证书)定义:多域名SSL证书,也被称为SAN(SubjectAlternativeName)证书或UCC(UnifiedCommunicationsCertificate)证书,是一种特殊的SSL证书类型,可以保护一个主域名以及多个其他附属域名。这些......
  • 乐维网管平台(三)如何高效管理无线网络
    一、无线网络管理概述1.什么是无线网络管理无线网络管理是指利用专门的软件平台(如网管平台)对无线网络设备(如无线接入点、无线控制器等)及其相关资源进行集中监控、配置、优化和维护的一系列操作。其主要目的是确保无线网络的高效稳定运行,提升用户体验,保障网络安全。2.无线网络管......
  • 设计卷积神经网络CNN为什么不是编程?
    上一篇:《搞清楚这个老六的真面目!逐层‘剥开’人工智能中的卷积神经网络(CNN)》序言:现在让我们开始走进卷积神经网络(CNN)的世界里。和传统编程完全不同,在人工智能的程序代码里,您看不到明确的算法规则,看到的只是神经网络的配置说明。这里的代码不会像传统编程那样去具体实现每个......
  • 前端又出新框架了,你还学得动吗?
    最近前端又出来一个新框架/库,名为nue.js。一周前的9.13号提交了第一个commit,到今天已超过2000个star。翻译一下:Nue是一个强大的React、Vue、Next.js、Vite和Astro替代品。它可能会改变您的web开发方式。WhatisNueJS?NueJS是一个非常小的(压缩后2.3kb)JavaScri......