检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
存储过程 商业规则和业务逻辑可以通过程序存储在GaussDB中,这个程序就是存储过程。 存储过程是SQL和PL/SQL的组合。存储过程使执行商业规则的代码可以从应用程序中移动到数据库。从而,代码存储一次能够被多个程序使用。 存储过程的创建及调用办法请参考CREATE PROCEDURE。
前提条件 安装插件前需要先将插件包上传至最终租户OBS中。插件包上传请参考上传对象章节。 注意事项 插件安装过程中会重启实例,将导致数据库业务短暂中断。 请联系第三方厂商获取相关插件包的下载地址、sha256以及license信息。 插件安装支持重复下发,首次安装插件要求配置license。
字段设计规范 【规则】字段设计应使用推荐类型。 字段设计需使用推荐字段,如果需要使用禁用、不推荐的字段类型。有些数据类型不推荐的原因是业务使用场景较少,未大规模商用。 表1 数据库数据类型最佳实践 数据类型 说明 是否推荐 UUID 不同集群可能产生相同UUID 禁止 序列整型
约束设计 DEFAULT和NULL约束 【建议】如果能够从业务层面补全字段值,那么,就不建议使用DEFAULT约束,避免数据加载时产生不符合预期的结果。 【建议】给明确不存在NULL值的字段加上NOT NULL约束,优化器会在特定场景下对其进行自动优化。 【建议】给可以显式命名的约束显式命名。除了NOT
storage test error 业务执行过程中,数据页、索引或者Undo页面发生变更后,该页面放锁之前会主动进行逻辑损坏检测,发现页面损坏问题后会输出包含“storage test error”关键字的日志信息到数据库运行日志(pg_log文件),执行事务回滚,页面会恢复到修改前的状态。
storage test error 业务执行过程中,数据页、索引或者Undo页面发生变更后,该页面放锁之前会主动进行逻辑损坏检测,发现页面损坏问题后会输出包含“storage test error”关键字的日志信息到数据库运行日志(gs_log文件),执行事务回滚,页面会恢复到修改前的状态。
下载GaussDB强切日志 GaussDB提供、强切日志的下载功能。业务高可用场景下,若开启了强切日志采集,当发生强切时,GaussDB可以采集备机来不及回放的xlog日志,并转义为SQL文件,用户可下载对应的SQL文件,判断数据是否需要,如果需要可通过执行SQL语句进行回放。 注意事项
存储过程 商业规则和业务逻辑可以通过程序存储在GaussDB中,这个程序就是存储过程。 存储过程是SQL、PL/SQL和Java语句的组合。存储过程使执行商业规则的代码可以从应用程序中移动到数据库。从而,代码存储一次能够被多个程序使用。 存储过程的创建及调用办法请参考CREATE
约束设计 DEFAULT和NULL约束 如果能够从业务层面补全字段值,那么,不建议使用DEFAULT约束,避免数据加载时产生不符合预期的结果。 给明确不存在NULL值的字段加上NOT NULL约束,优化器会在特定场景下对其进行自动优化。 给可以显式命名的约束显式命名。除了NOT
1MODULE为on。如果不希望进行go mod工程的改造,需将GO111MODULE设置为off,并手动下载依赖包。依赖包与驱动根目录和业务代码保持同级。 GOPROXY:用户使用在线导入时需配置包含Go驱动包的路径。 用户可以根据自己场景参数配置Go其他相关环境变量。 通过go
JDBC 【规格】JDBC实例必须指定数据库,一旦实例创建,无法切换数据库。 【规格】单条SQL语句的长度不允许超过2G字节,业务应考虑通信成本,建议单条SQL语句不超过5K。 【规格】目前仅支持对CREATE/ALTER TABLE中列的DEFAULT值进行参数化设置,其他DDL使用Prepare
必须为kB、MB、GB,不能为TB。 设置建议:一般情况保持默认值即可。如果磁盘空间很小,无法满足默认值的需求,可以按需将该参数调小;如果业务中存在长事务或大事务,需要根据磁盘情况将undo_space_limit_size调大,具体调整值可以参考gs_stat_undo系统函数
l_compatibility参数设置为TD。 查询操作 除ETL程序外,应该尽量避免向客户端返回大量结果集的操作。如果结果集过大,应考虑业务设计是否合理。 使用事务方式执行DDL和DML操作。例如,TRUNCATE TABLE、UPDATE TABLE、DELETE TABLE、DROP
LIMIT 1); 上述语句建议业务拆分为两条SQL语句,先执行子查询。 【建议】避免在SELECT目标列中使用子查询,可能导致计划无法下推影响执行性能。 【建议】子查询嵌套深度不建议超过两层。 由于子查询会带来临时表开销,过于复杂的查询应考虑从业务逻辑上进行优化。 父主题: 数据库编程规范
LIMIT 1); 上述语句建议业务拆分为两条SQL语句,先执行子查询。 【建议】避免在SELECT目标列中使用子查询,可能导致计划无法下推影响执行性能。 【建议】子查询嵌套深度不建议超过两层。 由于子查询会带来临时表开销,过于复杂的查询应考虑从业务逻辑上进行优化。 父主题: 数据库编程规范
必须为kB、MB、GB,不能为TB。 设置建议:一般情况保持默认值即可。如果磁盘空间很小,无法满足默认值的需求,可以按需将该参数调小;如果业务中存在长事务或大事务,需要根据磁盘情况将undo_space_limit_size调大,具体调整值可以参考gs_stat_undo系统函数
LIMIT 1); 上述语句建议业务拆分为两条SQL语句,先执行子查询。 【建议】避免在SELECT目标列中使用子查询,可能导致计划无法下推影响执行性能。 【建议】子查询嵌套深度不建议超过两层。 由于子查询会带来临时表开销,过于复杂的查询应考虑从业务逻辑上进行优化。 父主题: 数据库编程规范
准备一个将要进行的SQL语句。 需要注意的是,ODBC发送准备好的语句不支持内核复用计划,会导致每次执行都需要重新生成计划,导致CPU占用率高。如果业务对计划复用有需求,建议优先使用JDBC作为客户端。 原型 1 2 3 SQLRETURN SQLPrepare(SQLHSTMT
的存量数据基线化,执行成功返回耗时,执行失败返回失败原因。 规格说明:函数的执行时长与实例上的业务表数量正相关。实例存在1万张业务表的场景下,基线化函数执行耗时25秒左右;10万张业务表的场景下,基线化函数执行耗时120秒左右。函数执行期间不会阻塞其他SQL语句的操作。 可以通过SELECT
本示例中为测试实例,选择较小的测试规格,实际选择规格以业务诉求为准。 存储空间 480G 本示例中为测试实例,选择较小的存储空间,实际选择存储空间大小以业务诉求为准。 加密磁盘 不加密 本示例中选择磁盘不加密,选择加密后会提高数据安全性,但对数据库读写性能有少量影响,实际请按照业务使用策略进行选择。 DAS登录数据库