暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8s SQL 编写指导(2)

淮海路小佩奇 2023-05-22
179

类型转换

【建议】在需要数据类型转换(不同数据类型进行比较或转换)时,使用强制类型转换,以防隐式类型转换结果与预期不符。

【建议】在查询中,对常量要显式指定数据类型,不要试图依赖任何隐式的数据类型转换。

【关注】若 sql_compatibility参数设置为 A,在导入数据时,空字符串会自动转化为 NULL。如果需要保留空字符串需要 sql_compatibility 参数设置为 C

查询操作

【建议】除 ETL 程序外,应该尽量避免向客户端返回大量结果集的操作。如果结果集过大,应考虑业务设计是否合理。

【建议】使用事务方式执行 DDL 和 DML 操作。例如,truncate table、update table、deletetable、drop table 等操作,一旦执行提交就无法恢复。对于这类操作,建议使用事务进行封装,必要时可以进行回滚。

【建议】在查询编写时,建议明确列出查询涉及的所有字段,不建议使用“SELECT *”这种写法。一方面基于性能考虑,尽量减少查询输出列;另一方面避免增删字段对前端业务兼容性的影响。

【建议】在访问表对象时带上 schema 前缀,可以避免因 schema 切换导致访问到非预期的表。

【建议】超过 3 张表或视图进行关联(特别是 full join)时,执行代价难以估算。建议使用 WITH TABLE AS 语句创建中间临时表的方式增加 SQL 语句的可读性。

【建议】尽量避免使用笛卡尔积和 Full join。这些操作会造成结果集的急剧膨胀, 同时其执行性能也很低。 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论