我使用了一个企业应用程序,并学习了一些DB设计的技巧。
所有表都应该有以下有助于审计跟踪的字段--具有动态LastChangedPage
LastChangedBy、LastChanged、LastChangedBy存储过程应该具有@bDebug参数。默认情况下,它被设置为0。如果将其设置为1,则打印动态SQL语句,这将对调试非常有帮助。
你还能想到其他有用的建议吗?
编辑:谢谢你的所有答案。我仍然在寻找一个可以提供DB设计/技巧/策略的链接的答案。。
发布于 2009-07-11 16:50:50
对于#1:移到Server 2008,只需打开更改数据捕获。如果您确实需要保持详细的审计跟踪,仅此特性将证明成本是合理的。
对于#2:任何带有动态sql的存储过程都应该自动处于双秘密试用状态(即:它是允许的,但必须经过多个级别的代码评审,以确保没有更好的方法)。
发布于 2009-07-11 17:37:50
当谈到网络的力量时,最好不要删除任何东西。因此,有一个deletedOn日期,您可以将那些已经“删除”的对象排除在搜索中。这也有助于疯狂的客户谁不小心删除了他们的帐户。显然,这并不是每个领域都应该用到的。
发布于 2009-07-12 09:15:58
在使用非常大的数据库(VLDB)时,会立即想到一些想法:
您应该实现表分区吗?
拥有数百万条记录的大型数据库表可能受益于表分区。
我最常访问的表是什么?
考虑按Filegroup进行分离,即在一个Filegroup上放置Customer表,在另一个Filegroup上放置事务表。这允许Server为文件访问创建多个线程,从而创造了顺序I/O的可能性。
然后考虑底层物理磁盘结构,即为每个Filegroup提供一个单独的LUN。
设计了一个灵活的索引策略
毫无疑问,您已经考虑到了索引策略,但是对于VLDB平台,应该经常对此进行审查。随着数据量的增加和数据分发的变化,您的数据访问查询的执行计划可能会发生变化。您应该计划是否需要定期检查索引策略。
https://stackoverflow.com/questions/1114086
复制相似问题