掌握把“烂”SQL牢牢关进笼子里的密钥

这篇具有很好参考价值的文章主要介绍了掌握把“烂”SQL牢牢关进笼子里的密钥。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘要:本文通过5个部分内容帮助开发者快速了解GaussDB(DWS) 资源管理机制,让数仓过载烦恼不再,把“烂”SQL牢牢关进笼子里。

本文分享自华为云社区《直播回顾 | 掌握把“烂”SQL牢牢关进笼子里的密钥》,作者: 华为云社区精选 。

混合负载场景下,怎样避免“烂”语句对数据库系统的冲击?如何在资源紧张的情况下,让高优先级的作业先行?本期《数仓过载不用愁,资源管理帮分忧》的主题直播中,我们邀请到华为云EI DTSE技术布道师周孟韬,针对GaussDB(DWS)资源管理机制与开发者和伙伴朋友们展开交流互动。通过5部分内容帮助开发者快速了解GaussDB(DWS) 资源管理机制,让数仓过载烦恼不再,把“烂”SQL牢牢关进笼子里。

资源池的并发管控介绍

基于华为云基础设施架构,GaussDB(DWS)提供标准数仓、实时数仓、IoT数仓3种形态,满足不同的业务诉求。在GaussDB(DWS)整体架构中,有4类资源管控,分别是:并发管控、算力管控、存储空间、资源池。

当前GaussDB(DWS)的并发支持三种管控模式:

1.global并发管控:

通过max_active_statements参数,约束当前集群支持的query并发上限;

2.Simple语句并发数

某个资源池内,简单语句的并发数上限;

3.复杂作业并发数

某个资源池内,复杂语句的并发数上限。

资源池的算力管控介绍

GaussDB(DWS)提供三种算力管控方式,分别是:内存管控、CPU管控和网络管控,本次主要介绍内存管控和CPU管控两种方式。

内存管控:GaussDB(DWS)为用户提供三种内存管控方式,用户可以根据业务需要,合理设置资源池级别的内存配比。

针对传统内存管理的弊端,GaussDB(DWS)设计实现了内存自适应技术,解除对work_mem的依赖,优化器依据统计信息对查询使用内存进行估算;执行器执行SQL过程中,如果使用内存超过估算内存即触发下盘;资源管理依据优化器估算的查询内存,对查询进行调度和管控。

CPU管控:GaussDB(DWS)使用cgroup实现了两种cpu管控能力,基于cpu.shares的共享配额管控和基于cpuset的专属限额管控。通过这两种方式,可以灵活地满足用户对于CPU资源不同维度的划分方式。

当作业超过资源池最大并发数时会造成资源池排队,短时的排队属于正常现象,但长时间持续排队,资源使用率就会变低。比较常见的是CCN排队,通常造成CCN排队的,主要是语句的估算内存耗尽导致,因此对于高内存开销的语句,需要通过合理的并发进行管控。

资源池评估方法

资源池的规划始终遵循由高到低来划分资源,优先配比高优先级,然后中优先级、最后低优先级;按照业务的SLA的要求,

  • 高优先级满足峰值(无抖动、无排队);
  • 中优先级均值满足(可抖动,不报错、不积压);
  • 低优先级允许报错、超时;

可以根据TOPSql的UniqueSql_ID来进行归一化查询的资源汇总统计,分析不同业务的资源开销和并发诉求。

资源池高阶用法-query_band

资源池的传统用法是用户关联资源池,指定A用户进Resource_pool 1,B用户进Resource_pool 2,这样的归属方式要求我们对每一个业务归属非常清晰,实操难度大,会造成用户数无法控制的情况。因此我们还支持出另外一种资源池路由方式---query_band。用户发起的查询根据用户的执行参数先路由到query_band再路由到资源池,只需要识别query_band的key即可,不再关注作业对于用户的归属,降低资源池的规划难度。

资源池空间管控&算子下盘

GaussDB(DWS)为MPP架构,每个DN使用率不能超过当前磁盘空间总容量的90%(单个DN达到阈值后,触发集群自我保护机制,也就是只读),因此我们需要尽可能避免数据倾斜,GaussDB(DWS)提供了单语句的空间管控(默认10%磁盘容量大小,单次插入超过10%,当前query会触发熔断),以及用户和Schema空间管控的能力,来很好的帮助用户规划自己的空间资源。

欢迎感兴趣的开发者观看直播回放,了解详细信息。更多关于GaussDB(DWS)产品技术解析、数仓产品新特性的介绍,请关注GaussDB(DWS)论坛,技术博文分享、直播安排将第一时间发布在GaussDB(DWS)论坛。

论坛链接:https://bbs.huaweicloud.com/forum/forum-598-1.html

直播回放链接:https://bbs.huaweicloud.com/live/DTT_live/202306281630.html

 

点击关注,第一时间了解华为云新鲜技术~文章来源地址https://www.toymoban.com/news/detail-549140.html

到了这里,关于掌握把“烂”SQL牢牢关进笼子里的密钥的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • C#,入门教程(30)——扎好程序的笼子,错误处理 try catch

    上一篇: C#,入门教程(29)——修饰词静态(static)的用法详解 https://blog.csdn.net/beijinghorn/article/details/124683349 程序员语录: 凡程序必有错,凡有错未必改! 程序出错的原因千千万,只有扎好程序的笼子才尽量不至于造成大错。 数据操作(比如:除0,超范围),尤其是文件与

    2024年01月22日
    浏览(12)
  • 掌握SQL Server实战之SQL Server的安装

    掌握SQL Server实战之SQL Server的安装

    大家好,我是沐风晓月,本文SQL Server的介绍收录于[《数据库学习专栏》]中的SQL Server 专栏,此专栏带你从零开始学习SQL server,持续更新中,欢迎点赞收藏。 🏠个人主页:我是沐风晓月 🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业,阿里云博客专家 😉😉

    2024年02月02日
    浏览(5)
  • 10个必须掌握的SQL常用语句

    10个必须掌握的SQL常用语句

    下面我将介绍 10 个 SQL 中常用的分析技巧,供大家学习参考。 1 SELECT all columns with LIMIT 一般,我们需要了解数据的大概,那么我们一般会选择前 5 行进行打印,看看具体内容包括哪些! SELECT 命令会选择所有的行、列,全部进行打印时,浪费时间、电脑内存, Limit 命令可以查

    2024年02月01日
    浏览(13)
  • SQL分析与优化:掌握数据中台的关键技巧

    目录 效果界面 技术方案 Notebook集成 基于抽象语法树(AST)的SQL验证 基于大模型Prompt的SQL优化

    2024年02月04日
    浏览(5)
  • 简明SQL别名指南:掌握AS实现列名更名

    简明SQL别名指南:掌握AS实现列名更名

    在 SQL 查询中,使用 {原始字段名} as {别名} 的语法来为查询结果的列赋予更直观的名称,以提高查询结果的可读性和可理解性。  以下是用到的表。 用AS更名 例如,查询表1的name字段,并将其 更名 为\\\"名字\\\",同时查询age字段并将其 更名 为\\\"年龄\\\"。 用空格更名 例如,查询表

    2024年02月09日
    浏览(7)
  • 快速掌握SQL语言——数据查询语言DQL

    快速掌握SQL语言——数据查询语言DQL

    数据查询语言DQL是一种用于查询数据库中数据的语言,它是SQL的一部分,也是SQL中最常用的语言之一。 DQL(Data Query Language) 主要用于从数据库中检索数据,包括从一张表或多张表中检索数据、按特定条件检索数据、对数据进行排序、分组和聚合等操作。 DQL语句的基本结构包

    2024年02月08日
    浏览(7)
  • 掌握 SQL Server 中的 IF THEN 逻辑

    掌握 SQL Server 中的 IF THEN 逻辑

    在数据库管理领域,牢牢掌握 T-SQL 控制流语句是一项至关重要的技能。这些语句允许开发人员动态地控制程序执行的流程,使复杂的逻辑实现成为可能。在 SQL Server 中强大的流控制语句中,IF 语句作为基本工具脱颖而出。探索 IF-THEN 语句的高级用法并了解dbForge Studio SQL Serv

    2024年01月19日
    浏览(2)
  • 简明SQL条件查询指南:掌握WHERE实现数据筛选

    简明SQL条件查询指南:掌握WHERE实现数据筛选

    条件查询是用于从数据库中根据特定条件筛选数据行的一种方式,它避免了检索整个表中的数据。通常,使用 WHERE 子句来定义过滤条件,只有符合这些条件的数据行才会被返回。 SQL中的运算符有:=、!=、、 等,用于进行条件判断。 在逻辑运算中,常见的运算符包括: and:

    2024年02月09日
    浏览(21)
  • MySQL你掌握了多少?这些SQL题你能作对几道?

    MySQL你掌握了多少?这些SQL题你能作对几道?

    MySQL 是工作中常用数据库,必须掌握,但小伙伴们又掌握了多少呢,今天一起来测试一下吧~ 力扣SQL ⭐组合两个表 ⭐第二高的薪水 ⭐超过经理收入的员工 ⭐查找重复的电子邮箱 ⭐从不订购的客户 ⭐大的国家 ⭐删除重复的电子邮箱 ⭐有趣的电影 表1: Person 表2: Address 题目:

    2023年04月10日
    浏览(7)
  • SQL注入进阶:掌握联合查询注入和报错注入攻击技巧

    SQL注入进阶:掌握联合查询注入和报错注入攻击技巧

    数据来源         本文仅用于信息安全的学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。 介绍         联合查询注入是SQL注入的一种,通过在原有的SQL语句中添加UNION(联合)操作,将恶意构造的

    2024年02月06日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包