检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
存储形式是二进制。例如一个RAW类型的数据11001011的表现形式为‘CB’,即在实际的类型转换中输入的是‘CB’。 UTL_RAW.CAST_FROM_BINARY_INTEGER 存储过程CAST_FROM_BINARY_INTEGER将INTEGER类型值转换为二进制表示形式(即RAW类型)。
统一身份认证服务”,打开IAM管理控制台。 修改您的IAM用户所属的用户组,给用户组设置策略,授予用户组DWS Database Access权限,并将您的IAM用户添加到该IAM用户组中。 只有IAM的admin用户组的用户才能执行此步骤。在IAM中,只有admin用户组的用户可以管理用户,包括创建用户组及用户、设置用户组权限等。
很多用户在使用JDBC连接集群时只连接集群的一个CN,这就导致单个CN压力较大并且别的CN资源浪费,并且这种方式还有单点故障导致连接不可用的风险。 用户可使用JDBC连接多个CN避免以上问题。主要有以下三种方式: 使用ELB连接集群:弹性负载均衡(ELB)是将访问流量根据转发策略分发到后端多台弹性云服务器的流量分发
包含聚集函数的等值相关子查询的提升 子查询的where条件中必须含有来自上一层的列,而且此列必须和子查询本层涉及表中的列做相等判断,且这些条件必须用and连接。其它地方不能包含上层的列。其它限制条件如下: 子查询中where条件包含的表达式(列名)必须是表中的列。 子查询的Selec
一个查询语句要经过多个算子步骤才会输出最终的结果。由于个别算子耗时过长导致整体查询性能下降的情况比较常见。这些算子是整个查询的瓶颈算子。通用的优化手段是EXPLAIN ANALYZE/PERFORMANCE命令查看执行过程的瓶颈算子,然后进行针对性优化。 如下面的执行过程信息中,Hashagg算子的执行时间占总时间的:(51016-13535)/
现基表快速扫描的索引技术。Partial Cluster Key可以指定多列,但是一般不建议超过2列。PCK适用于列存大表点查询加速。 优化前 创建一个无局部聚簇(以下称为PCK)的列存表orders_no_pck,表定义如下: 执行以下SQL语句,查询某个点查询的执行计划: 1
分区表查询中表达式一般不是单纯的分区键,而是包含分区键的表达式的Filter条件,这种类型的Filter条件是不能用来剪枝的。 优化前 t_ddw_f10_op_cust_asset_mon为分区表,分区键为year_mth,此字段是由年月两个值拼接而成的整数。 测试SQL如下: 1
高级功能包DBMS_OUTPUT支持的所有接口请参见表1。 表1 DBMS_OUTPUT 接口名称 描述 DBMS_OUTPUT.PUT_LINE 输出指定的文本,文本长度不能超过32767字节。 DBMS_OUTPUT.PUT 将指定的文本输出到指定文本的前面,不添加换行符,文本长度不能超过32767字节。
禁止使用特殊权限用户运行业务,需遵循权限最小分配原则 违反规则的影响: 特殊权限用户如管理员用户,均具有特殊用途,使用此类用户运行业务有安全和管控风险。 方案建议: 使用普通用户运行业务,特殊权限类用户仅用于管理类操作。 规则2.6 禁止使用一个数据库用户运行所有业务 违反规则的影响: 同一个数据库用户运行所有
a、Oracle和MySQL等多种兼容模式。 建议2.4 存在关联计算的对象创建在同一个DATABASE中 违反规则的影响: 跨库访问无论使用哪种方案,性能均劣于同一DATABASE内的关联操作。 方案建议: 创建多个DATABASE的场景,将需要执行关联计算的对象,创建在同一DATABASE中。
TABLESPACE对象设计规范 规则2.8 禁止自定义TABLESPACE表空间 违反规则的影响: 分布式场景建表使用自定义表空间,导致表数据无法按照各DN分布式存储,出现存储倾斜。 方案建议: 创建表对象使用内置默认表空间。 父主题: GaussDB(DWS)对象设计规范
如果是自定义函数,建议分析客户业务场景,看函数的provolatile和proshippable属性定义是否正确。 实例分析:自定义函数 对于自定义函数,如果对于确定的输入,有确定的输出,则应将函数定义为immutable类型。 利用TPCDS的销售信息举例,需要写一个函数来获取商品的打折情况,即定义一个计算折扣的函数:
对复杂SQL语句进行拆分。 对于过于复杂并且不易通过以上方法调整性能的SQL可以考虑拆分的方法,把SQL中某一部分拆分成独立的SQL并把执行结果存入临时表,拆分常见的场景包括但不限于: 作业中多个SQL有同样的子查询,并且子查询数据量较大。 Plan cost计算不准,导致子查询hash
分析执行计划图1可知,在顺序扫描阶段耗时较多。 多表JOIN中,由于表PS.SDR_WEB_BSCRNC_1DAY的JOIN列“BSCRNC_ID”存在大量空值,JOIN性能差。 建议在语句中手动添加JOIN列的非空判断,修改后的语句如下所示。 1 2 3 4 5 6 7 8 9 10 11 12
高级功能包DBMS_OUTPUT支持的所有接口请参见表1。 表1 DBMS_OUTPUT 接口名称 描述 DBMS_OUTPUT.PUT_LINE 输出指定的文本,文本长度不能超过32767字节。 DBMS_OUTPUT.PUT 将指定的文本输出到指定文本的前面,不添加换行符,文本长度不能超过32767字节。
curosorid 执行的游标ID DBMS_SQL.DEFINE_COLUMN 该函数用来定义从给定游标返回的列,该接口只能应用于SELECT定义的游标中。定义的列通过查询列表的相对位置来标识,传入变量的数据类型决定了该列被定义的类型。 DBMS_SQL.DEFINE_COLUMN函数的原型为:
和包含Agg等值相关子链接提升。该hint通常会和前面章节提到的hint联合使用。 对于FROM关键字后的子查询,则需要使用子查询的别名进行hint,block_name hint不会被用到。 如果子链接中含有多个表,则提升后这些表可与外层表以任意优化顺序连接,hint也不会被用到。
ON_STATISTICS视图检测CN上正在执行的作业的负载管理记录,并计算所有下盘DN的最大下盘数据量。 如果10分钟(可配置)内存在SQL的下盘量超过5GB(可配置),则上报查询语句触发下盘量超阈值;当集群不存在符合告警条件的SQL语句时,自动消除该告警。修改告警配置详情请参见修改告警规则。
数据库中允许有些数据类型进行隐式类型转换(赋值、函数调用的参数等),有些数据类型间不允许进行隐式数据类型转换,可尝试使用GaussDB(DWS)提供的类型转换函数,例如CAST进行数据类型强转。 GaussDB(DWS)数据库常见的隐式类型转换,请参见表1。 GaussDB(DWS)支持的DATE的效限范围是:公元前4713年到公元294276年。
查询和索引统计收集器 查询和索引统计收集器负责收集数据库系统运行中的统计数据,如在一个表和索引上进行了多少次插入与更新操作、磁盘块的数量和元组的数量、每个表上最近一次执行清理和分析操作的时间等。可以通过查询系统视图pg_stats和pg_statistic查看统计数据。下面的参数设置服务器范围内的统计收集特性。