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

时间:2024-04-26 16:14:56

特性约束

  1. 仅支持针对Unique SQL ID添加补丁,如果存在Unique SQL ID冲突,用于Hint调优的SQL PATCH可能影响性能,但不影响语义正确性。
  2. 仅支持不改变SQL语义的Hint作为PATCH,不支持SQL改写。
  3. 不支持逻辑备份、恢复。
  4. 不支持创建时校验PATCH合法性,如果PATCH的Hint存在语法或语义错误,不影响查询正确执行。
  5. 仅初始用户、运维管理员、监控管理员、系统管理员用户有权限执行。
  6. 库之间不共享,创建SQL PATCH时需要连接目标库。
  7. 配置集中式备机可读时,需要指定主机执行SQL PATCH创建/修改/删除函数调用,备机执行报错。
  8. SQL PATCH同步给备机存在一定延迟,待备机回放相关日志后PATCH生效。
  9. 限制在存储过程内的SQL PATCH和全局的SQL PATCH不允许同时存在。
  10. 使用PREPARE + EXECUTE语法执行的预编译语句执行不支持使用SQL PATCH。
  11. SQL PATCH不建议在数据库中长期使用,只应该作为临时规避方法。遇到内核问题所导致的特定语句触发数据库服务不可用问题,以及使用Hint进行调优的场景,需要尽快修改业务或升级内核版本解决问题。并且升级后由于Unique SQL ID生成方法可能变化,可能导致规避方法失效。
  12. 当前,除DML语句之外,其他SQL语句(如CREATE TABLE等)的Unique SQL ID是对语句文本直接哈希生成的,所以对于此类语句,SQL PATCH对大小写、空格、换行等敏感,即不同的文本的语句,即使语义相同,仍然需要对应不同的SQL PATCH。对于DML,则同一个SQL PATCH可以对不同入参的语句生效,并且忽略大小写和空格。
support.huaweicloud.com/centralized-devg-v3-gaussdb/gaussdb-12-0301.html