当前位置: 首页 > 网络应用技术

GaussDB(DWS)不在优化技术解密中:划分他的分析400倍的性能提高

时间:2023-03-07 19:12:50 网络应用技术

  在本文中,我将与华为Cloud社区的“消除他分析他对不优化技术解密的400次性能改进(DWS)独家的分析[Gauss这次不是数学家],作者:两杯咖啡。

  本文介绍了8.1.2.2的Not In In In In In In In In not of in of Gaussdb(DWS)(DWS)和中国商人银行的技术,总共将绩效提高的15%提高到批处理中国商人银行的运营。在同一时间,该文件还引入了GaussDB(DWS)中的不在内的使用方案。我希望所有读者都会尝试这项技术。

  对于金融客户业务,通常会根据某些条件进行类似的搜索,例如:客户ID,客户ID和业务ID的组合,找到不在一定功能范围内的用户集合,并且因此。可以使用语法中的不使用语法来实现此类查询特定记录的使用方案。在分析数据库中不广泛使用:GaussDB(DWS)大客户:ICBC,中国商人银行和Everbright Bank Bank Bank在业务方案中没有大量的声明中。

  该语句的语义是:在T2表中的所有T1表中找到记录。

  由于零值的特殊处理,这种类型的陈述无法使用有效的哈希式进行有效的处理,性能很差,并且调整的门槛相对较高,这已成为困扰大多数客户的主要问题。DatabaseFriends这样的朋友。由于Teradata和Oracle也在问题中探索了很多,但他们无法完美地解决场景的性能问题。GaussDB(DWS)已经意识到了独家分布式混合HashJoin在最新版本中的优化技术不优化技术8.1.2。它已在中国商人银行的联合创新项目中应用。有近900份作业(占作业总数的3%)。不在语句中的表现平均包括不在语句中的表现的400倍。中国商人银行生产集群的所有业务的表现增长了15%,其影响很明显,这解决了客户的痛点。

  本文介绍了不在中的使用。希望用户可以尝试在优化高级功能中使用GaussDB(DWS)。

  当涉及到不在的情况下,必须提及数据库中的三个值逻辑。在数学逻辑中,我们使用True and false的双重值逻辑来显示真实性,在现实世界中,将有一些数据,其中一些数据,这些数据是目前未知。因此,它是由存储在数据库中的null表示的。在操作中,我们无法判断其真实性,因此我们介绍了第三个值逻辑,即null.note。null值与空字符串不同,因为空字符串是空字符串是一个固定的值。当然,在Oracle兼容性的模式下,空字符串被认为是空置值,但是它以TD和MySQL兼容模式为范围。未知和任何值都不为人所知。它属于第三个价值,没有真实和错误。在流行术语中,零值不能由任何值确定,但可以是任何值,因此它不能确认零值,值和值的值和值和null值和thethere的值是不同的值。

  由于与= =的等效关系,在不在中的运算符不包括零值,例如:

  对于包含{1,-1,null}的数据表t,查询结果与以下相对应:

  以上两个陈述返回1,仅根据条件1。

  以上两个陈述返回1,仅-1符合条件;null和1的等效值为null,被捕获后仍为空。这不是真的。

  上面的陈述返回2、1和-1以满足条件。

  上面的语句返回0,与NULL相比的任何值的结果为空,而不是正确。

  返回0,任何值的比较在null之后仍然为null。

  特征提取时,通常不在广泛使用中。例如:要满足A = 1和B = 3,然后(1,3)插入表;满足b = 4,该值放置在零。然后由目标表和T2操作,含义是:采石(a,b)组合不是(1,3),而b是在金融行业中,不是4个,基于某些条件的用户筛查通常会出现用户。在有条件的组合中,由于可能包括某些列的一些未知情况,可以通过这种方式实现业务逻辑。

  如上示例所示,如果匹配匹配的匹配表T2(a,b)包含上述两个记录,则搜索中涉及的表T1(a,b):(1,3),(2,2,2,2,2,4),(2,6),(3,null),(null,5)。

  当不运行时,零值可以被视为与任何值匹配。当只有两个不匹配列的列时,不返回true。T1和T2目标表的匹配情况(如箭头所示),输出结果结果如下所示。

  某些数据库的用户还知道,不存在的使用与不存在相似,但是有一定的区别。

  它也是一个对某个范围不满意的元组。对于上述示例的输入,输出结果为4组,不包括(1,3)。这是为什么?

  通过上述分析,我们可以知道,在不使用等效(=)比较中,虽然不相等(<>)比较。相反,存在还使用等效(=)比较,而不存在等效的(=)比较,即存在,并且不存在是互补的。存在不是等效的。两者之间的差异是处理的,如下图所示。

  从另一个角度来看,非操作等同于零值的强滤波,并且没有一个未输出。可以看到连接条件的差异。因为在使用抗联接(反连接操作)中,即要达到的,即元组不匹配输出,条件也增加了零值的条件以返回真实。

  不在绩效问题上是公认的业务问题。Friends Teradata和Oracle优化了一些不进来的方案,也就是说,Null-Aware Technology已对没有发行的单列进行了无效的干预,但是对于多个列而言,在没有的多个列中仍然存在各种已知问题。下面的图片显示了一项调查结论分布式和单个/多列在不在场景中不存在。

  GaussDB(DWS)也已致力于解决此问题的解决方案。新版本具有两种优化技术。

  通过上述分析,我们可以看到不运作需要增加额外的零值判断。出现的或条件导致效率低下的Nestloop计算。GaussDB(DWS)可以根据用户定义的非零约束来判断NOLL值。例如:在上面的语句中,如果T1表和T2表的列A在T2表的列上受约束在同一时间,GaussDB(DWS)也支持了有效的哈希金进行处理。只要基本表面包含非零约束,由于适当的零约束,也可以优化非操作的表达。

  如果不在中的列值包含零值,则有必要单独处理零值以求解问题。GaussDB(DWS)8.1.2版本版本实现分布式混合HashJoin技术。在执行过程中,每个DN可以动态分离包含空值的元组并执行Nestloop的特殊匹配处理;对于非零值,可以将有效的值与高效值一起使用。执行HashJoin。由于业务中的零值是不确定的因素,因此该比例很小,因此该技术可以确保此类场景的最大性能优势。在没有零值的场景中,性能与不存在的相同。新版本执行计划如下:

  该技术现在已经支持了基于向量的发动机,并将在线路发动机上进一步改进。在同一时间,对于不同列的零值,您还可以构建多个空值以加速匹配,以避免使用Nestloop时使用Nestloop空值太慢。

  同时,由于外部的空值可能与内表的任何值匹配,因此通常需要广播内表。如果内表很大,则占用更多的网络资源并影响性能。目前,如果对不在列的列没有零约束,则可以将内表分布在此列上的非null值上,并且仅广播null值以减少网络数据发送的量。示例,如果在上一个示例中,T1表的A列A包含NOT NULL约束,该约束将生成以下计划(分布与T2表相对应的列A列A,并且null值为广播):

  如果使用GaussDB(DWS)早期版本的用户不必担心,那么本章将在调整方法中介绍一些不供所有人使用的情况。

  详细分析了上面不存在和不存在的区别。数据中没有零值,因此,可以通过等效重新写入以不存在优化的不存在。一般重写方法是:

  由于GaussDB(DWS)支持早期版本中null值的衍生逻辑,因此可以通过将非零约束添加到非操作中的battic表并将或条件转换为等效条件来进行优化。在情况下的列,您只需要添加与内部表面和外表面相对应的列以增加非零约束。还可以在COLN和CN中添加无效约束,依此类推。示例:从t1中选择 *,其中(a,b)不在(select in in(selecta,b from t2中的b white a不是nuls),a不是null;

  在第8.1.2版中,由于分布式混合式HashJoin技术仅支持矢量化引擎,因此可以作为语句中所涉及的表的列表创建它,并且参数rewrite_rule包含'notinopt'value.technology.technology.bever.bever bef this comparate是一个多值参数,您需要通过显示show rewrite_rule命令(如果未设置默认值)来检查当前设置的值,并通过添加'notinopt'值设置它。将来将在其他文章中引入。

  如果用户使用的表是行存款表,则GaussDB(DWS)还提供参数enable_force_vector_engine用于强制使用矢量化引擎处理,并且还可以使用新技术。此参数为BOOL值,默认值是关闭的。参数可以设置有效的设置。

  此外,为了减少内表广播所带来的资源消耗,如果理论上不在列中的某些不为空,则可以在某些列中添加null约束,或者在语句中的语句中指定为null。条件条件。条件条件。可以通过数据重新评估减少网络发送量并进一步提高性能。

  通过对本文的分析,我相信用户已经完全了解了分析业务的使用,而不是在使用方案,SQL语法和不实施方法的GaussDB(DWS)中,可行的调整方法,希望大多数人能够大多数人用户可以通过-Depth的理解和参与-Depth。由于无法解决问题,因此GaussDB(DWS)目前专注于解决其他棘手的性能问题。预计在其他情况下,它还可以将最终的性能体验带给用户并降低用户优势的成本。

  该理论不像实践那样好,因此如何快速体验DWS?DWS现在启动了演示体验活动。输入DWS主页并单击“演示体验”以快速,方便地体验它!

  如果您在体验期间有任何建议和意见,则可以前往DWS社区论坛进行反馈。

  单击以关注,并首次了解华为云新技术?

  原始:https://juejin.cn/post/7098542067613171720