2006-11-14

关于SQL Server数据库的若干注意事项

来源: 本站收集整理 作者:佚名 评论 0 条
 

不要忽略同时修改同一记录的问题

有时候,两个用户会同时修改同一记录,这样,后一个修改者修改了前一个修改者的操作,某些更新就会丢失。处理这种情况不是很难:创建一个timestamp字段,在写入前检查它,假如答应,就合并修改,假如存在冲突,提示用户。

在细节表中插入纪录时,不要在主表执行SELECT MAX(ID)

这是一个普遍的错误,当两个用户在同一时间插入数据时,这会导致错误。你可以使用SCOPE_IDENTITY,IDENT_CURRENT和@@IDENTITY。假如可能,不要使用@@IDENTITY,因为在有触发器的情况下,它会引起一些问题(详见这里的讨论)。

避免将列设为NULLable

假如可能的话,你应该避免将列设为NULLable。系统会为NULLable列的每一行分配一个额外的字节,查询时会带来更多的系统开销。另外,将列设为NULLable使编码变得复杂,因为每一次访问这些列时都必须先进行检查。

我并不是说NULLS是麻烦的根源,尽管有些人这样认为。我认为假如你的业务规则中答应“空数据”,那么,将列设为NULLable有时会发挥很好的作用,但是,假如在类似下面的情况中使用NULLable,那简直就是自讨苦吃。

CustomerName1

CustomerAddress1

CustomerEmail1

CustomerName2

CustomerAddress2

CustomerEmail3

CustomerName1

CustomerAddress2

CustomerEmail3

假如出现这种情况,你需要规范化你的表了。

尽量不要使用TEXT数据类型

除非你使用TEXT处理一个很大的数据,否则不要使用它。因为它不易于查询,速度慢,用的不好还会浪费大量的空间。一般的,VARCHAR可以更好的处理你的数据。

尽量不要使用临时表

尽量不要使用临时表,除非你必须这样做。一般使用子查询可以代替临时表。使用临时表会带来系统开销,假如你是用COM 进行编程,它还会给你带来很大的麻烦,因为COM 使用数据库连接池而临时表却自始至终都存在。SQL Server提供了一些替代方案,比如Table数据类型。

学会分析查询

SQL Server查询分析器是你的好伙伴,通过它你可以了解查询和索引是如何影响性能的。

使用参照完整性

定义主健、唯一性约束和外键,这样做可以节约大量的时间。


共3页: 上一页 [1] [2] 3 下一页
(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:sql server 2005中的表分区  
下一篇:Oracle和MS SQL server的函数对比
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号