我已将历史记录表添加到我的数据库。最初我添加了一个名为Deleted的位,如果该行被删除,则打算将其更新为1,否则每行都是更新。SQL数据库已删除标志并已删除已删除对于
然后我被告知我们需要记录谁删除了什么时候。所以我添加了Nullable [DeletedBy] [DeletedOn]字段。 在这一点上,我想知道这是否使我的删除位多余。您可以简单地查询表,检查DeletedBy不是Null的位置,如果您想查看哪个行被删除。
我打算问这个问题,这是更好的做法:
有额外位列
使用已经存在的空列,以确定删除行
但我开始认为这是一个偏好的事情。相反,我的问题是,哪个更有效?如果此表获取大量的,有没有性能增益来运行:
Select * from MyTable where [Deleted] = 1
在
Select * from MyTable where [DeletedBy] is not null
试一试,让我们知道。添加几百万个虚拟记录并运行查询。 – asawyer 2012-04-11 15:46:48
我想我的老板会杀了我,如果我添加了几百万行到工作数据库,但我想我可以在我的家庭盒子上安装一个SQL服务器试用版,并让它去那里 – 2012-04-11 15:47:38
@MikeyMouse:难道你没有测试环境? :) – 2012-04-11 15:47:58