技术分享会(一):数据库开发规范

数据库开发规范

一、数据库

?当前主要数据库和作用?

 

二、 --》 字段 --》 数据类型

?当前主要模块,各模块核心表? 

CRM_ 客户相关

SCM_ 借款相关

FMS_ 资金相关

PD_ 公用数据相关

WMS_ 仓储相关

  

三、字段

?说说以往遵循过的字段规范?

小写字母加下划线,c_id,loan_id,product_name

 

四、数据类型

?说说你都知道什么数据类型? 

bit

inttinyint,smallint,bigint

decimal

varchar (英文或数字)

nvarchar (中文)

Datetime(smalldatetime,date,date2)

 

五、自定义视图 v_

?问问以前都怎么用视图的,遵循什么规范? 

注意事项,select 写明确的字段名,不要使用*,如:

select c_id,name,shortname from CRM_Customer where c_id = @c_id

使用*号有一个隐患,当基表新增字段的时候,视图select出来的字段会错乱。

 

六、自定义函数 f_

?问问大家以前都怎么使用函数的,遵循什么规则?

与视图相同,使用明确的字段

 

七、触发器 tr_

?问问大家都怎么使用触发器的,有没有遇到过什么问题?

因为触发器对开发人员来说是非常隐蔽的,为避免掉坑里,尽量不适用触发器

 

八、存储过程 p_

?问问大家以前都怎么使用存储过程的,有没有遇到过记忆深刻的bug

必加设置

 

set nocount on

 

set transaction isolation level read uncommitted 

 

格式规范

缩进规范

注释规范

大小写规范

事务使用(非常重要的业务才需要开启事务)

异常处理(一般用C#做异常处理,非常重要的作业才需要开启事务)

连表查询

select a.*,b.* from SCM_Loan_Loan a inner join SCM_Loan_LoanRepaymentPeriod b on a.loan_id = b.loan_id 

连表更新

update SCM_Loan_Loan set bm = b.bm,owner = b.owner

    from SCM_Loan_Loan a inner join CRM_Customer b on a.c_id = b.c_id

 

?问问各位如何做连表更新的?

表变量和临时表的使用,尽可能使用表变量

Declare @tmptable table(id int primary key, name nvarchar(50), created datetime)

 

游标使用规范

?问问大家怎么使用游标?

declare @cur cursor 

declare @owner nvarchar(100),@c_id int int,@name nvarchar(50)

set @cur = CURSOR read_only forward_only for 

    select c_id,name,owner from CRM_Customer where type = '客户'

open @cur

fetch next from @cur into @c_id,@name,@owner

while(@@fetch_status = 0)

Begin

...... 业务处理脚本

    fetch next from @cur into @c_id,@name,@owner

end

close @cur  

deallocate @cur 

九、索引

?问问大家以前谁做开发的时候真正使用过索引的,讲一讲使用案例或者优化经验?

索引类型

聚集索引、非聚集索引、包含性索引

select 是否高效,是否用到了索引

不高效的原因

1)没有建立索引;

2)进行了列运算,无法使用到索引;

3)语句太复杂,无法正确使用索引;

 

?问问大家怎么确定我写的语句有没有用到索引,我们的表都有什么索引?

sp_helpindex CRM_Customer

create index ix_phone on CRM_Customer(phone)

sp_spaceused CRM_Customer

 

?如何查看执行计划?

 

数据库那么多sql语句,怎么确定哪些查询时慢的,需要优化

sql profiler

动态视图

 

如何通过sql profiler快速定位问题

ClientProcessID 等于

TextData 类似于

Duration 大于等于

 

posted @ 2018-12-21 16:20  鸽子飞扬  阅读(197)  评论(0编辑  收藏  举报