SQL编程规范整理

一、排版规范

1.代码缩进

    对于判断、循环等处理使用字符缩进

    缩进的空格最好不要使用TAB键

2.空格及换行

    变量定义、相对独立的程序块等要单独成行,便于阅读

    太长的程序(超过110列)应做换行处理

    操作符前后加入空格

3.书定习惯

    不同操作类型的操作符用括号隔离

    表、字段别名用意义的名称替代

    所有书写使用大写,方面移植

二、命名规范

1.存储过程

    ”SP_“作为前缀

2.函数

    “F_”作为前缀

3.触发器

    “TR_”作为前缀

4.视图

    “V_”作为前缀

5.链接服务

    “LNK_”作为前缀

6.主键

    “PK_”作为前缀,表名在后,如:PK_表名

7.外键

    “FK_”作为前缀,主表名,从表名,如:FK_主表_从表

8.索引

    “ID_”作为前缀,列名在后,如:ID_COLNAME

9.序列

    “SEQ_”作为前缀

三、通用SQL性能优化

1.索引使用

    尽量使用“>=”或,不要使用“>”

    LIKE尽量前端匹配

    尽量不要使用“<>”

   条件中不要使用函数

   条件中不要使用计算

   条件中尽量不要使用NOT

   尽量避免使用OR

   合理利用复合索引

2.SQL优化

    避免使用复合SQL语句(如:SELECT A,B FROM TABLE1 WHERE A IN )(SELECT A1 FROM TABLE2))

    尽量避免使用DISTINCT

    尽量避免直接使用自定义函数

    对于查询比较复杂,数据量较大的查询,可以使用工具进行查询计划检测,调整语句性能

    不要在存储过程或函数中反复访问同一张表,如果需要,可以将数据放在临时表中使用。

    应尽量减少控制语句的检查次数,以提高执行效率

    如果能从一条SQL语句中获取多个想要的数据,就不要分多条SQL语句分分次获取

    在长度和精度和精度允许的情况下,建议用INTERGE代替NUMERIC,在可以提高性能的情况下,使用EXISTS代替IN,NOT EXISTS 代替NOT IN

    查询的WHERE过滤原则,应使过滤记录数最多的条件

    多表连接查询时,可以先按条件过滤在进行连接

    select、insert子句的代码中不允许出现“*”以代替查询所有字段,必须用实际的字段名代替

    提高GROUP BY的执行效率,在进行GROUP BY 之前将不需要条件过滤掉

  

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注