SQL Server 工作中注意事项

1.建表,因为程序用Entity Framework 的缘故,每一张映射表需要一个主键,当初为了偷懒,建表用了一个多余的自增涨ID作为主键,这个主键几乎和业务逻辑没有关系,又白白占用一个聚合索引,真的让人头大。(这里可以让这个字段作为主键,但是一定要取消他聚合索引,因为后期数据多了,需要查询某一天的数据,发现时间类型建非聚集索引,查询很多列依然会很慢。尽量把这个聚集索引给where 条件最频繁的那个)

2.高版本数据库SQLServer 和MySQL 都能直接计算MD5加密,省去了很多事情,起码不需要用程序来算MD5给人家导数据了(但是值得注意的是-> SQLServer 需要将加密字段的数据先转换为varchar类型,nvarchar类型因为是双字节的缘故被加密会出现偏差得到错误的结果)

3.SQLServer 中int类型作为where的查询条件检索速度最快(起码比日期和字符串的快),如果数据多,先给这个int类型的字段加个索引

4.如果日期类型的字段作为查询条件,且这个字段有索引,那么尽量这么查询(日期字段为字符串进类型不可以行大小比较,因为不准,所以先要把字段转化为日期类型再进行比较)

--速度快的查询如下,这样该日期类型的日期字段还能用上索引
select 字段1,字段2
FROM 表1
where 日期字段 >= '20181029'
and 日期字段 < '20181030'
--速度慢的查询如下
select 字段1,字段2
FROM 表1
where convert(varchar(10),日期字段,23)='2018-10-29'

5.查询的字段和where条件都决定了查询的速度。

where条件如果只有聚合索引的字段,那查询的字段随意

where条件如果是费聚合索引的字段,那么查询的字段尽量少

6.查询数据不行就整临时表,存在tempdb,表名最好写上什么时间可以删除,等到时候方便删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值