.
实用文档.
工程一部数据库开发标准
.
实用文档.
版本号
日期
修改者
说 明
2021-03-06
注:对该文件内容增加、删除或修改均需填写此变更记录,详细记载变更信息,以保证其可追溯性。
.
实用文档.
命名标准
对象
新建的表,存储过程,包等要遵循以下规那么
对象名称
前缀
备注
表
见下表,根据功能分
视图
v_
主键
pk_
索引
idx_
序列
seq_
存储过程
pr_
包
pk_
函数
f_
同义词
s_
数据库连接(dblink)
dl_
表
表名不得超过30个字母,全部采用大写字母,表的命名可以如下:模块缩写名_表的名称,如RES_NODE代表资源模块的节点; 值班: DUTY_CALENDAR。
字段名称
字段名不得超过30个字母,必须以英文单词构成,每个单词之间以下划线隔开,全部采用大写字母。对复杂的大型应用系统而言,必须建立表名和字段名的数据字典,并附于开发标准附录中,在命名时必须严格遵守数据字典。
.
实用文档.
数据库对象管理
一般规定
数据库所有对象,包括表、视图、主键、索引、序列、存储过程、包等必须在数据库建模工具中进行管理并保持与数据库完全同步。
大小写
在数据库模型、数据库脚本中,所有对象,包括表、视图、主键、索引、序列、存储过程、包等名称必须大写。
语句书写标准
尽量不使用某种数据库的特有功能
为了保持可移植性,尽量不使用某种数据库的特有功能,如SQL Server专用的Unique ID, Oracle专用的Sequence的功能;
查询sql语句尽量使用绑定变量
尽最大可能不使用通配符
在SQL语句中,LIKE关键字支持通配符匹配,但这种匹配特别消耗时间。如:SELECT A FROM ABC WHERE A LIKE 'M%' 。在A字段上建立了索引。把语句改为SELECT A FROM ABC WHERE A >'M' AND A <'N',在执行查询时会利用索引以提高响应速度。
使用*通配符必须事先征得工程开发负责人同意。
Distinct
使用distinct会增加查询和I/O的操作次数。应当防止使用distinct关键字。
嵌套查询
SELECT A FROM CMS_USER WHERE USER_NAME IN ( SELECT USER_NAME FROM CMS_DEPARTMENT WHERE DEPARTMENT=’电子办’)
如果我们用连接来代替,且表关联放在条件语句的最后部。即:
SELECT A FROM CMS_USER,CMS_DEPARTMENT WHERE CMS_DEPARTMENT .DEPARTMENT=’电子办’ AND CMS_DEPARTMENT .USER_NAME =
将提高一定的效率。
.
实用文档.
查询嵌套层次越多,效率越低。应当尽量防止子查询。如果子查询不可防止,那么要在子查询中过滤掉尽可能多的行。
排序
利用索引自动以适当的次序输出时,可以防止对表中数据排序,当以下的情况发生时,排序就不能省略:
索引中不包括一个或几个待排序的列;
group by或order by子句中列的次序与索引的次序不一样;
排序的列来自不同的表。
正确地增建索引、合理地合并数据库表,可以防止不必要的排序。如果排序不可防止,那么应当试图简化它,如缩小排序列的范围等。
UNION
如果不过滤多表中的重复数据,请使用UNION ALL;如果过滤多表中的重复数据,请使用UNION。
长语句
防止使用很长、很复杂的查询语句,如果有特殊需求必须书写较长的SQL语句,应该把语句分解成假设干局部,每一局部形成一个存储过程或函数。
大表尽可能使用分区
大表分区:超过1G的表尽可能使用分区,分区的原那么和尽可能和维护该表的机制结合起来。比方:保存10天数据,每天删除10天前的一天数据,在删除数据的时候,可以采用采用alter table table_name truncate partition partition_name,而后alter table table_name drop partition partition_name;这里不
数据库开发规范 来自淘豆网m.daumloan.com转载请标明出处.