检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
通常,用户可以执行SELECT语句查看敏感信息的脱敏效果。如果语句有如下特征,则可能存在故意套取敏感数据的可能性,造成语句执行报错。 GROUP BY子句引用与目标列一样含有脱敏列的Target Entry作为分组。 DISTINCT作用在输出的脱敏列上。 带有CTE的语句。 涉及集合操作。 子查询的目标列不是基
指定Scan方式的Hint,仅支持常用的tablescan,indexscan和indexonlyscan的hint。 指定子链接块名的Hint。 指定倾斜信息的Hint,仅支持Join与HashAgg的重分布过程倾斜。 指定Agg重分布列Hint。仅8.1.3.100及以上集群版本支持。
jdbc.Driver”(对应gsjdbc200.jar)。 由于GaussDB(DWS)在JDBC的使用上与PG的使用方法保持兼容,所以同时在同一进程内使用两个JDBC的驱动的时候,可能会类名冲突。 父主题: 基于JDBC开发
有的事务已经提交。 释放连接 【建议】推荐使用连接池限制应用程序的连接数。每执行一条SQL就连接一次数据库,是一种不好SQL的编写习惯。 【建议】在应用程序完成作业任务之后,应当及时断开和GaussDB(DWS)的连接,释放资源。建议在任务中设置session超时时间参数。 【建
分析执行计划图1可知,在顺序扫描阶段耗时较多。 多表JOIN中,由于表PS.SDR_WEB_BSCRNC_1DAY的JOIN列“BSCRNC_ID”存在大量空值,JOIN性能差。 建议在语句中手动添加JOIN列的非空判断,修改后的语句如下所示。 1 2 3 4 5 6 7 8 9 10 11 12
bind_argument,用于指定存放传递给存储过程参数值的变量。bind_argument前的修饰符与对应参数的修饰符一致。 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
tor上调度和执行),其他coordinator不会调度和执行该job。所有coordinator都可以查看、修改、删除其他CN创建的job。 job只能通过dbms_job高级包提供的接口进行创建、更新、删除操作,因为高级包的接口中会考虑所有CN间job信息的同步和pg_job
SCHEMA对象设计规范 建议2.7 不在其他USER的私有SCHEMA下创建对象 私有SCHEMA是指创建USER时自带的同名SCHEMA,该SCHEMA为该USER私有。 违反规则的影响: 在其他用户私有SCHEMA下创建对象,对象权限不受创建者控制,OWNER也非创建者。 方案建议:
VIEW对象设计规范 建议2.16 视图的嵌套需避免超过三层 违反规范的影响: 视图嵌套过深导致执行计划不稳定、耗时不稳定。 视图依赖的对象重建风险高,锁冲突发生概率增大。 方案建议: 创建视图直接基于物理表查询,不建议嵌套视图。 父主题: GaussDB(DWS)对象设计规范
包含聚集函数的等值相关子查询的提升 子查询的where条件中必须含有来自上一层的列,而且此列必须和子查询本层涉及表中的列做相等判断,且这些条件必须用and连接。其它地方不能包含上层的列。其它限制条件如下: 子查询中where条件包含的表达式(列名)必须是表中的列。 子查询的Selec
分区表查询中表达式一般不是单纯的分区键,而是包含分区键的表达式的Filter条件,这种类型的Filter条件是不能用来剪枝的。 优化前 t_ddw_f10_op_cust_asset_mon为分区表,分区键为year_mth,此字段是由年月两个值拼接而成的整数。 测试SQL如下: 1
中,使用store_sales的(ss_ticket_number, ss_item_sk)列和store_returns的(sr_ticket_number, sr_item_sk)列进行关联,由于缺少多列相关性的估算导致行数严重低估。 使用如下的rows hint进行调优后,计划如下,运行时间318s:
其下属对象的权限。 从便捷性和资源共享效率上考虑,推荐使用Schema进行业务隔离。 建议系统管理员创建Schema和Database,再赋予相关用户对应的权限。 Database设计建议 【建议】在实际业务中,根据需要创建新的Database,不建议直接使用集群默认的gaussdb数据库。
GaussDB(DWS)是基于代价估算生成的最优执行计划。优化器需要根据ANALYZE收集的统计信息行数估算和代价估算,因此统计信息对优化器行数估算和代价估算起着至关重要的作用。通过ANALYZE收集全局统计信息,主要包括:pg_class表中的relpages和reltuples;pg_st
【建议】尽量避免使用笛卡尔积和Full join。这些操作会造成结果集的急剧膨胀,同时其执行性能也很低。 【关注】NULL值的比较只能使用IS NULL或者IS NOT NULL的方式判断,其他任何形式的逻辑判断都返回NULL。例如:NULL<>NULL、NULL=NULL和NULL<>1返
GaussDB(DWS)是基于代价估算生成的最优执行计划。优化器需要根据ANALYZE收集的统计信息行数估算和代价估算,因此统计信息对优化器行数估算和代价估算起着至关重要的作用。通过ANALYZE收集全局统计信息,主要包括:pg_class表中的relpages和reltuples;pg_st
图2 using_clause-1 对以上语法格式的解释如下: define_variable,用于指定存放单行查询结果的变量。 USING IN bind_argument,用于指定存放传递给动态SQL值的变量,即在dynamic_select_string中存在占位符时使用。
0及以上集群版本支持。 使用自定义或者IAM用户登录的集群可以到集群用户管理界面创建用户或者对已有的用户授权,详情请参见创建GaussDB(DWS)数据库和用户。 约束与限制 自定义登录限制: 新增数据源选择不同的集群,然后输入用户名和密码,测试连接后可以打开集群数据连接。 登录时最
DEFAULT和NULL约束 【建议】如果能够从业务层面补全字段值,则不建议使用DEFAULT约束,避免数据加载时产生不符合预期的结果。 【建议】给明确不存在NULL值的字段加上NOT NULL约束,优化器会在特定场景下对其进行自动优化。 【建议】给可以显式命名的约束显式命名。除了NOT
理员)能力。即不再拥有创建角色和用户的权限,并不再拥有查看和维护数据库审计日志的权限。关于CREATEROLE属性和AUDITADMIN属性的更多信息请参考CREATE ROLE。 三权分立后,系统管理员只会对自己作为所有者的对象有权限。 三权分立的设置办法请参考设置GaussDB(DWS)集群三权分立章节。