检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
SQL语句改写规则 典型SQL调优点 使用Plan Hint进行调优 例行维护表 例行重建索引 SQL调优关键参数调整 配置SMP 查询最耗性能的SQL 分析作业是否被阻塞
_INFO时,通过借助SQL_HANDLE_ENV的HandleType和EnvironmentHandle的Handle,调用SQLGetDiagRec可得到相关的SQLSTATE值,通过SQLSTATE值可以查出调用此函数的具体信息。 示例 参见:示例 父主题: ODBC接口参考
row) 在string_to_array中,如果分隔符参数是NULL,输入字符串中的每个字符将在结果数组中变成一个独立的元素。如果分隔符是一个空白字符串,则整个输入的字符串将变为一个元素的数组。否则输入字符串将在每个分隔字符串处分开。 unnest(anyarray) 描述:扩大一个数组为一组行。
row) 在string_to_array中,如果分隔符参数是NULL,输入字符串中的每个字符将在结果数组中变成一个独立的元素。如果分隔符是一个空白字符串,则整个输入的字符串将变为一个元素的数组。否则输入字符串将在每个分隔字符串处分开。 unnest(anyarray) 描述:扩大一个数组为一组行。
设置Oracle配置参数可在迁移Oracle数据库脚本时自定义迁移工具的行为。 打开config文件夹中的features-oracle.properties文件,并根据实际需要设置表1中的参数。 表1 features-oracle.properties文件中的配置参数 参数 说明 取值范围 默认值 样例
示例:重新执行应用SQL 当主DN故障且40s未恢复时,GaussDB(DWS)会自动将对应的备DN升主,使集群正常运行。备升主期间正在运行的作业会失败;备升主后启动的作业不会再受影响。如果要做到DN主备切换过程中,上层业务不感知,可参考此示例构建业务层SQL重试机制。 1
解决办法:确保新增加的分区中正确定义了新分区的边界。 GAUSS-01736: "too many partition keys, allowed is %d" SQLSTATE: XX000 错误原因:新增加的分区中定义的边界个数超过了所允许的增加的最大分区数。 解决办法:确保每次
参数说明 复合类型 name 要创建的类型的名称(可以被模式限定)。 attribute_name 复合类型的一个属性(列)的名称。 data_type 要成为复合类型的一个列的现有数据类型的名称。 collation 要关联到复合类型的一列的现有排序规则的名称。 基本类型 自定义基本类
参数说明 复合类型 name 要创建的类型的名称(可以被模式限定)。 attribute_name 复合类型的一个属性(列)的名称。 data_type 要成为复合类型的一个列的现有数据类型的名称。 collation 要关联到复合类型的一列的现有排序规则的名称。 基本类型 自定义基本类
不能自动修复,需要手动修复,修复步骤: 使用gs_clean工具(-N参数)查询出异常两阶段事务的xid以及处于prepared的节点。 登录事务处于prepared状态的节点,系统管理员连接一个可用的数据库(如gaussdb),执行语句SET xc_maintenance_mode
oid 此操作符的反转器(如果存在)。 oprcode regproc PG_PROC.oid 实现该操作符的函数。 oprrest regproc PG_PROC.oid 此操作符的约束选择性计算函数。 oprjoin regproc PG_PROC.oid 此操作符的连接选择性计算函数。
同时指定数据库中参数support_batch_bind * 为on * CHECK_ERROR的作用是检查并打印错误信息。 * 此示例将与用户交互式获取DSN、模拟的数据量,忽略的数据量,并将最终数据入库到test_odbc_batch_insert中 ************
错误原因:系统表缓存查找分区索引信息失败。 解决办法:检查分区索引是否存在。 GAUSS-01955: "Memory alloc failed for indexInfo" SQLSTATE: XX000 错误原因:生成IndexInfo结构失败。 解决办法:检查有足够的内存。 GAUSS-01956:
SQL调优案例 案例:选择合适的分布列 案例:建立合适的索引 案例:增加JOIN列非空条件 案例:使排序下推 案例:设置cost_param对查询性能优化 案例:调整局部聚簇键 案例:调整中间表存储方式 案例:改建分区表 案例:调整GUC参数best_agg_plan 案例:改写SQL排除剪枝干扰
验证 在DWS新建的test数据库下,执行以下SQL语句查询表apex2_dynamic_add_remain_test的行数,如与源数据行数一致,说明数据一致。 1 SELECT COUNT(*) FROM db_user01.apex2_dynamic_add_remain_test;
subquery in parameter default value" SQLSTATE: 0A000 错误原因:不能在参数的默认值中使用子查询。 解决办法:修改函数参数,不使用子查询作为默认值。 GAUSS-00946: "cannot use aggregate function in parameter
执行该job。所有coordinator都可以查看、修改、删除其他CN创建的job。 job只能通过dbms_job高级包提供的接口进行创建、更新、删除操作,因为高级包的接口中会考虑所有CN间job信息的同步和pg_jobs表主键的关联操作,如果通过DML语句对pg_jobs表进
外一个例子:如果A和B都赋予了C同样的权限,则A可以撤销他自己的授权选项,但是不能撤销B的,因此C仍然拥有该权限。 如果执行REVOKE的角色持有的权限是通过多层成员关系获得的,则具体是哪个包含的角色执行的该命令是不确定的。在这种场合下,最好的方法是使用SET ROLE成为特定角
ostgres线程和Stream线程分配的所有内存。 表1 PV_SESSION_MEMORY字段 名称 类型 描述 sessid text 线程启动时间+线程标识。 init_mem integer 当前正在执行作业进入执行器前已分配的内存,单位为MB。 used_mem integer
用于导出动态生成函数所对应的汇编语言。 LLVMParseIRLock 用于在查询开始处从IR文件中编译并解析已写好的IR函数。 RPNumberLock 用于加速集群的DN对正在执行计划的任务线程的计数。 ClusterRPLock 用于加速集群的CCN中维护的集群负载数据的并发存取控制。