项目经验――数据库SQLSERVER篇(经验杂谈)

 
在大型项目中,我想在困扰大家的主要问题为数据库的操作,本人就在项目中遇到了一些问题,在这里和大家交流下。
1、  本人项目中有一个复杂视图,数据量在 2 千万以上,每次对这个视图进行操作时,反映都很慢,而且这个视图还经常用到,我当时想到的是缓存起来,可是因为数据量很大,缓存到服务器端是不现实的,我们项目组用到了一种解决方案,把此视图填充到物理表中,对此物理表设置索引,但是又怕用户查询记录时正好在填充物理表的时候,所以可以设置 2 个物理表,来回切换,即:第一次填充物理表 A ,第二次填充物理表 B ,下次再填充物理表 A ,如此反复,和.NET的根据时间缓存数据原理类似。
大家可能会想到索引视图,可是索引视图限制太多,例如:不允许使用outer join 运算;表也不能与他自己连接;不允许进行子查询;定义索引视图的SELECT 语句不能包含下列关键词:UNION、TOP、DISTINC、COMPUTE或者HAVING;不能包含通配符 ,所以不是很不实用。
 
2、  不要在数据表中用到自增长字段,因为再和其它数据库导 insert 脚本时,是不能控制自增长列的值的。
 
3、  尽量少用外键约束,可以靠代码实现,外键约束会使数据库维护起来相当麻烦,尤其是在大项目中。
 
以上论述是本人在项目中的实际经验,如有其它好想法,欢迎于本人交流,下次为大家讲讲数据库的权限设计方面的经验。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值