云数据库 GAUSSDB-使用SQL PATCH进行调优:特性约束

时间:2024-11-13 14:46:18

特性约束

  1. 仅支持针对Unique SQL ID添加补丁,如果存在Unique SQL ID冲突,用于hint调优的SQL PATCH可能影响性能,但不影响语义正确性。
  2. 仅支持不改变SQL语义的hint作为PATCH,不支持SQL改写。
  3. 不支持逻辑备份、恢复。
  4. 不支持在DN上创建SQL PATCH。
  5. 仅初始用户、运维管理员、监控管理员、系统管理员用户有权限执行。
  6. 库之间不共享,创建SQL PATCH时需要连接目标库。如果创建SQL PATCH的CN被剔除并触发全量Build,则会继承全量Build的目标CN中的SQL PATCH,因此建议在各个CN上尽量都创建对应的SQL PATCH。
  7. CN之间由于Unique SQL ID不同,不共享SQL PATCH,需要用户手动在不同的CN上创建对应的SQL PATCH。
  8. 限制在存储过程内的SQL PATCH和全局的SQL PATCH不允许同时存在。
  9. 使用PREPARE + EXECUTE语法执行的预编译语句执行不支持使用SQL PATCH。存在特殊情况,请参见特殊说明
  10. SQL PATCH不建议在数据库中长期使用,只应该作为临时规避方法。遇到内核问题所导致的特定语句触发数据库服务不可用问题,以及使用hint进行调优的场景,需要尽快修改业务或升级内核版本解决问题。并且升级后由于Unique SQL ID生成方法可能变化,可能导致规避方法失效。
  11. 当前,除DML语句之外,其他SQL语句(如CREATE TABLE等)的Unique SQL ID是对语句文本直接哈希生成的,所以对于此类语句,SQL PATCH对大小写、空格、换行等敏感,即不同文本的语句,即使语义相同,仍然需要对应不同的SQL PATCH。对于DML,则同一个SQL PATCH可以对不同入参的语句生效,并且忽略大小写和空格。
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0301.html