sql书写注意事项

上传人:第*** 文档编号:34615365 上传时间:2018-02-26 格式:DOC 页数:2 大小:32KB
返回 下载 相关 举报
sql书写注意事项_第1页
第1页 / 共2页
sql书写注意事项_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《sql书写注意事项》由会员分享,可在线阅读,更多相关《sql书写注意事项(2页珍藏版)》请在金锄头文库上搜索。

1、SQL 书写注意事项1、 SQL 书写规范a) 关键字大写关键字:SELECT、DELETE、INSERT 、UPDATE、FROM 、WHERE、ON、INNERLEFT/RIGHT/OUTER JOIN、CASE WHEN 、THEN、AS 、DISTINCT、 GROUP BY、ORDER BY、COUNT、M、MAX、MIN、HAVING、WITH BY、RANK 等。b) 使用缩进、分行格式书写 SQLSELECT * FROM dwetl.etl_job WHERE etl_job=xxx;2、 使用单一视图访问数据,不要直接访问表使用视图的好处是减少数据库锁时间,提高访问效率。3

2、、 创建临时表时显式创建 MULTISET、NO FALLBACK 表,不要创建SET、FALLBACK 表Creat table 时,不写 MULTISET、NO FALLBACK ,则默认为 SET、FALLBACKMULTISET 表的维护效率随着表数据量的增加,效率越明显。举例:3500 万条记录数据插入 MULTISET 表时间为 1 分钟,插入 SET 表时间为 12 分钟;FALLBACK 表会多占用一倍的存储空间。4、 尽量使用索引字段做为关联字段,提高 SQL 效率a) 使用 PI(主索引,每张表只有一个 )字段做为关联字段b) 使用 SI(二级主索引)字段作为关联字段c)

3、使用 PPI(分区主索引) 字段做为过滤字段 Partion Primary Index使用索引字段会大大提高 SQL 效率:1)避免全表扫描、数据重分布;2)数据库解析器会采用正确的执行策略。5、 对于太长的 SQL(一般情况下,执行效率都很差) ,采用分步的策略、创建临时表(注意 PI 选择,选择唯一性较高的字段做为 PI) ,多步实现6、 只选择有用的字段,去除不必要的字段(尤其是对于大数据量的表)举例:SELECT * FROM pcdr2.xxx;SELECT a1,b2 FROM pcdr2.xxx;7、 对于聚合、汇(m)等对关联语句,一般情况下,先分别进行汇,再进行关联8、 表

4、的 PPI 字段,尽可能的使用常量(做为过滤字段) ,不使用关联常见的情况:a) 将一条记录放入临时表中,使用此临时表字段与其他表的 PPI 字段关联i. 对 PPI 字段的表进行全表扫描,执行效率极差b) 将此条记录取出,然后做为常量和表的 PPI 字段做等值关联i. 对 PPI 字段的表部分记录扫描,执行效率极高9、 注意两个关联字段的类型、长度要一致,否则可能会影响性能;过滤字段与后面的常量值类型要一致,不要使用数据库隐含的自动类型转换,以免造成性能问题举例:pcdr2.tb_net_gsm_nl_200902字段msisdn定义char(15)SELECT * FROM pcdr2.tb_net_gsm_nl_200902 WHERE msisdn=xxxxxxxxxxx;执行时间 2 秒,其中 xxxxxxxxxxx 为手机号码,数字型SELECT * FROM pcdr2.tb_net_gsm_nl_200902 WHERE msisdn=xxxxxxxxxxx;执行 6 分 44 秒。10、 使用 Explain 查看 SQL 的执行计划情况综合考虑各种情况书写正确、高效的 SQL!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号