检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
server_encoding;”命令查看当前数据库的字符编码集。 为了适应全球化的需求,使数据库编码能够存储与表示绝大多数的字符,建议创建Database的时候使用UTF8编码。 指定新的数据库字符集编码必须与所选择的本地环境中(LC_COLLATE和LC_CTYPE)的设置兼容。 当指定的字符编码集为
SQL调优案例 案例:选择合适的分布列 案例:建立合适的索引 案例:增加JOIN列非空条件 案例:使排序下推 案例:设置cost_param对查询性能优化 案例:调整局部聚簇键 案例:调整中间表存储方式 案例:改建分区表 案例:调整GUC参数best_agg_plan 案例:改写SQL排除剪枝干扰
错误原因:字符串转换为数值的输入不支持“EEEE”格式。 解决办法:不使用“EEEE”格式作为转换为数值的字符串。 GAUSS-03384: "'RN' not supported for input" SQLSTATE: 0A000 错误原因:字符串转换为数值的输入不支持“RN”格式。
如果有多个字典,则它们会按指定的顺序搜索。 old_dictionary 映射中拟被替换的文本搜索字典名称。 new_dictionary 替换old_dictionary的文本搜索字典的名称。 new_owner 文本搜索配置的新所有者。 new_name 文本搜索配置的新名称。 new_schema
如果有多个字典,则它们会按指定的顺序搜索。 old_dictionary 映射中拟被替换的文本搜索字典名称。 new_dictionary 替换old_dictionary的文本搜索字典的名称。 new_owner 文本搜索配置的新所有者。 new_name 文本搜索配置的新名称。 new_schema
row) 在string_to_array中,如果分隔符参数是NULL,输入字符串中的每个字符将在结果数组中变成一个独立的元素。如果分隔符是一个空白字符串,则整个输入的字符串将变为一个元素的数组。否则输入字符串将在每个分隔字符串处分开。 unnest(anyarray) 描述:扩大一个数组为一组行。
row) 在string_to_array中,如果分隔符参数是NULL,输入字符串中的每个字符将在结果数组中变成一个独立的元素。如果分隔符是一个空白字符串,则整个输入的字符串将变为一个元素的数组。否则输入字符串将在每个分隔字符串处分开。 unnest(anyarray) 描述:扩大一个数组为一组行。
SQL语句改写规则 典型SQL调优点 使用Plan Hint进行调优 例行维护表 例行重建索引 SQL调优关键参数调整 配置SMP 查询最耗性能的SQL 分析作业是否被阻塞
设置Oracle配置参数可在迁移Oracle数据库脚本时自定义迁移工具的行为。 打开config文件夹中的features-oracle.properties文件,并根据实际需要设置表1中的参数。 表1 features-oracle.properties文件中的配置参数 参数 说明 取值范围 默认值 样例
解决办法:确保新增加的分区中正确定义了新分区的边界。 GAUSS-01736: "too many partition keys, allowed is %d" SQLSTATE: XX000 错误原因:新增加的分区中定义的边界个数超过了所允许的增加的最大分区数。 解决办法:确保每次
示例:重新执行应用SQL 当主DN故障且40s未恢复时,GaussDB(DWS)会自动将对应的备DN升主,使集群正常运行。备升主期间正在运行的作业会失败;备升主后启动的作业不会再受影响。如果要做到DN主备切换过程中,上层业务不感知,可参考此示例构建业务层SQL重试机制。 1
错误原因:系统表缓存查找分区索引信息失败。 解决办法:检查分区索引是否存在。 GAUSS-01955: "Memory alloc failed for indexInfo" SQLSTATE: XX000 错误原因:生成IndexInfo结构失败。 解决办法:检查有足够的内存。 GAUSS-01956:
不能自动修复,需要手动修复,修复步骤: 使用gs_clean工具(-N参数)查询出异常两阶段事务的xid以及处于prepared的节点。 登录事务处于prepared状态的节点,系统管理员连接一个可用的数据库(如gaussdb),执行语句SET xc_maintenance_mode
验证 在DWS新建的test数据库下,执行以下SQL语句查询表apex2_dynamic_add_remain_test的行数,如与源数据行数一致,说明数据一致。 1 SELECT COUNT(*) FROM db_user01.apex2_dynamic_add_remain_test;
修改应用在指定表的脱敏策略 ALTER REDACTION POLICY 删除应用在指定表的脱敏策略 DROP REDACTION POLICY 定义行级访问控制 行级访问控制策略控制数据库表中行级数据可见性。不同用户执行相同的SQL查询操作,读取到的结果不同。所涉及的SQL语句,请参考下表。
SQL调优案例 案例:选择合适的分布列 案例:建立合适的索引 案例:增加JOIN列非空条件 案例:使排序下推 案例:设置cost_param对查询性能优化 案例:调整局部聚簇键 案例:调整中间表存储方式 案例:改建分区表 案例:调整GUC参数best_agg_plan 案例:改写SQL排除剪枝干扰
subquery in parameter default value" SQLSTATE: 0A000 错误原因:不能在参数的默认值中使用子查询。 解决办法:修改函数参数,不使用子查询作为默认值。 GAUSS-00946: "cannot use aggregate function in parameter
column lists" SQLSTATE: 0A000 错误原因:INSTEAD OF triggers定义在了表的列上。 解决办法:INSTEAD OF triggers不能在表的列上定义。 GAUSS-01387: "cannot use subquery in trigger WHEN
外一个例子:如果A和B都赋予了C同样的权限,则A可以撤销他自己的授权选项,但是不能撤销B的,因此C仍然拥有该权限。 如果执行REVOKE的角色持有的权限是通过多层成员关系获得的,则具体是哪个包含的角色执行的该命令是不确定的。在这种场合下,最好的方法是使用SET ROLE成为特定角
"operator %u does not exist" SQLSTATE: XX000 错误原因:出现非法表达式。 解决办法:检查查询中的表达式是否合法,若不合法,需要修改查询。 GAUSS-02696: "binary I/O not supported during bootstrap" SQLSTATE: