数据库代码编写规范

1.除非影响业务,读取表(select)时,请使用WITH(NOLOCK),以提高并发性;

2.除了exists语句外,不要使用SELECT *,必须指明列名;

3.多表链接时,取有意义的表别名,并在每列前加表别名(如:a.id,b.name....),不要偷懒,防止对表增改列而造成列名冲突。同时可增强可读性;

4.使用表,存储过程,函数等资源时,必须指明架构(scheme).如:“dbo.property”;

5.不要对条件列使用函数(如:datediff(dd,createAt,getdate())),函数运算会导致索引失效;

6.除非必要,不使用OR或NOT IN ,NOT LIKE,<>之类的负逻辑;

7.查询条件中,特别是负逻辑,对于允许为空(nullable)的列必须有ISNULL,IS NULL或IS NOT NULL的判断逻辑;

8.查询条件(WHERE)尽量使用索引查找,尽可能缩小返回的数据集范围;

9.如果返回的结果集过大(典型参数下,结果集超过50条),需进行分页;

10.除非必要,不要使用显式事物(BEGIN TRAN),包括程序框架封装的事物,即使使用事物,也要保证事物尽可能的短;

11.SELECT,UPDATE,DELETE时,查询条件中变量数据类型与表列数据类型一致;表连接join时,连接条件的数据类型应一致;

数据库中数据类型是严格的,不匹配就会有数据类型转换,如果这个导致的转换最终是在大量的数据行上,那会产生极大的性能影响。注意条件和JOIN中的数据类型转换。尽可能使用显示的数据类型转换,并将转换的目标常量/定量/参数或者数据量少的一方。

特别的,在JOIN中String类型的参数到数据库中默认就映射为NVARCHAR(4000),如果对应表的字段类型是varchar或char等非unicode的字符类型,在SQL2005及以前版本将会完全用不上索引,在SQL2008版本中的索引效率也非常低。JDBC配置中加上sendStringParametersAsUnicode=false;

12.申明临时表和表变量时,字段的数据类型应尽量小,以节省资源;通常情况下,请使用有主键的表变量;

13.必须才存储过程(sp)头部添加“change log”,说明修改意图,并在修改处加以标识;

14.如果引用了链接服务器,或者使用了跨数据库的资源,需要在sp头部说明;

15.尽可能不实用触发器,尽量在程序中实现相应逻辑;

16.除非无替代方案,不要使用游标;

17.尽量避免在数据库中使用模块化的设计思想,避免多层嵌套视图

查询涉及的每隔视图可能很简单,但层层嵌套组合起来,可能最终形成一个复杂查询;

18.如果设计到分区表,则一定要有分区列的条件,且数据类型必须匹配;

19.除非影响业务,应在存储过程中设置相应的开关

a)SET NOCOUNT ON

当SET NOCOUNT为ON时,不返回计数。当SET NOCOUNT为OFF时,返回计数。当设置SET NOCOUNT为ON时,将不向客户端发送存储过程中每个语句的DONE_IN_PROC消息,如果存储过程中包含一些并不返回许多实际数据的语句,网络通信流量便会大量减少,因此,将SET NOCOUNT设置为ON可显著提高性能。

b)SET XACT_ABORT ON(视实际业务需要,不做硬性要求)

当SET XACT_ABORT为ON时,如果执行Transact-SQL语句产生运行时错误,则整个事物将终止并回滚。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《数据库设计开发规范-阿里 pdf》是阿里巴巴公司数据技术中心所发布的一份数据库设计开发规范。该规范内容丰富、系统完备,具有一定的指导意义。 该规范首先明确了数据库设计开发应着重考虑的三个方面:数据建模、物理设计和SQL编写规范。在数据建模方面,规范强调了规范化设计、模型可视化等关键要素,提出了详细的模型设计规范;在物理设计方面,则从数据存储、索引设计、性能优化等角度,提出了一系列具体的指导建议;而在SQL编写规范方面,规范涵盖了SQL语法、性能、安全性等多个方面,对SQL优化提出了具体的操作建议,使得开发人员能够高效地编写SQL语句。 此外,规范还提出了数据字典、版本管理、测试等方面的指导意见,保障了数据库开发的质量和可维护性。特别是在数据字典方面,规范强调了数据字典的必要性,提供了详细的数据字典设计原则和实施建议,为开发人员提供了有价值的参考。 总之,《数据库设计开发规范-阿里 pdf》提供了一套完整的数据库设计开发指南,让开发人员可以根据规范实际操作,提高开发效率和代码质量。虽然该规范是阿里巴巴公司的内部规范,但它的理念和思想值得其他公司、组织和开发者借鉴,从而在数据库开发方面得到提升。 ### 回答2: 阿里巴巴提出的《数据库设计开发规范》pdf是一份非常规范并且具有实际指导意义的文档,旨在帮助开发人员在数据库的设计和开发过程中能够遵循一定的规范,提高代码质量和可维护性。 规范主要从以下几个方面入手: 1.数据库命名规范:包括数据库、表、字段等的命名规范,遵循易读易懂、有意义而不冗长的原则,以便更好的理解和维护数据库。 2.数据类型规范:包括是否使用自增ID、数据类型的选择、字符集等的规范,以满足实际业务需求,减少存储空间和提高性能。 3.索引规范:包括索引的创建、使用、维护等的规范,以提高查询性能和减少额外的开销。 4.SQL语句规范:包括SQL语句编写、注释、执行等的规范,以提高开发效率和代码质量。 5.数据备份和恢复规范:包括数据备份、恢复策略等的规范,以保证数据的完整性和可靠性。 在实际开发中,遵循这些规范可以帮助开发人员降低错误率、提高工作效率、节省开发成本和提高系统的可维护性。因此,《数据库设计开发规范》pdf是一份非常值得推广和使用的文档。 ### 回答3: 阿里巴巴发布的《数据库设计开发规范》是针对数据库设计开发人员的一份指导性材料,主要包含数据库设计和开发规范、编码规范、命名规范、性能指导、错误处理、测试和版本管理等方面内容。 首先,规范的设计和开发可以确保数据结构的一致性和可用性,避免因为设计规范不当或开发人员的不规范行为导致数据质量下降或无法支持业务需求。 其次,编码规范、命名规范和错误处理等方面规范的实施可以减少代码中的错误和问题,提高代码质量和可维护性。 此外,该规范还提供了性能指导,包括了如何优化 SQL 查询、如何优化索引以及如何分析性能问题等。这些指导可以让开发人员更好地优化数据库,以达到更好的性能表现。 最后,该规范还包含了测试和版本管理等方面的指导,以确保每一次修改都是正常的,并减少因错误导致的不可逆的损失。 总的来说,阿里巴巴发布的《数据库设计开发规范》是一个非常有价值的指导性材料,可以让数据库设计和开发人员遵循统一的标准和规范,提高数据库的质量和性能表现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值