sql脚本编写规范

来源:互联网 发布:java 位图存储 编辑:程序博客网 时间:2024/05/16 07:44

脚本附件文件命名规则

?  DDL文件的命名:(客户化信息最好加自己名字。出现过同一个表多个人改动的情况,名字也一样)

此次需求序列号(SR号或PIR号)+执行顺序号+脚本执行用户+对象类型缩写+客户化的信息.sql

?  DML文件的命名
此次需求序列号(SR号或PIR号)+执行顺序号+脚本执行用户+dml+客户化的信息.sql

?  授权文件的命名
此次需求序列号(SR号或PIR号)+执行顺序号+脚本执行用户+grt+客户化的信息.sql

?  PACKAGE文件的命名

包头文件:包编译用户+_系统模块信息+_功能描述+_pkgh

包体文件:包编译用户+_系统模块信息+_功能描述+_pkgb

说明:文件名中字母统一使用小写

?  说明:
(1)数据库对象类型缩写为对象类型全称的前三个字符,例如:
          table :   tab
          index:    ind
          package: pac
          trigger: tri
          sequence:seq
          view:    vie
          synonym:  syn
          function: fun
          procedure:pro

(2)客户化信息,就是开发或者运营人员在下发版本的时候,为了方便、清晰,而附加的一些信息,比如项目名、版本号、提交人名字等等。


根据最近一段时间移交中发现的问题,做如下分享和总结:

 

1.  数据库脚本命名中不能有空格,会造成生产执行报错

2.  创建索引不要指定索引表空间,如果需要建索引的表内有大量数据,必须先获取索引统计信息脚本,创建索引必须有开发环境性能评估评估信息,以注释方式写入脚本中,例:

------开发环境索引性能评估------------

--数据量:2900万

--索引创建时间:7m

--使用前时间:10s (2900万数据)

--使用后时间:0.5s

--性能提高:2000%

--sql语句:SELECT * FROM T_PC_QUOTATION N WHERE N.TASK_GROUP_ID = 6884  AND N.CREATED_BY = 'XUYULAN003'

----------------------------------------

3.  对象授权时,不要直接授权给net2opr用户, net2opr已包含在R_NETS2DATA_DML角色中了

4.  对表增加/修改/删除字段时, 需合并成一个sql语句

如alter table test add (a varchar2(20),b number(2),c varchar2(3)),而不是写成3个alter table语句

5.  脚本走签报流程有所变动,脚本写好,先请相关人员review过后,由负责人与数据集中平台评估是否对数据集中平台有影响

评估后将评估邮件和脚本作为附件发给我,我再开始走签报.

6.  Fix脚本命名规则  执行用户+客户化信息+fix.sql  如: nets2data_t_nets_menu_fix.sql

7.  所有脚本(包括DML)都要走签报,签报要提前走,不要等到移交前才走,避免走签报过程中出现问题,影响正常移交

8.  在提交移交清单给我准备移交前,请提前做如下事:

a)   检查CD是否还有文件CheckOut,CD中是否有Lost Found文件

b)   关闭CD和SR/BUG/PIR