我使用企业应用程序,并且已经获得了一些数据库设计技巧
LastChangedBy
,LastChanged
,LastChangedPage
bDebug
参数。默认情况下,它设置为0.如果设置为1,则打印出动态SQL语句,这对调试非常有用。您能想到的任何其他有用的提示?
编辑:感谢您的所有答案。我仍在寻找能够提供DB Design提示/技巧/策略链接的答案。
答案 0 :(得分:4)
对于#1:转到SQL Server 2008,然后启用“更改数据捕获”。如果您确实需要保留详细的审计跟踪,仅此功能就可以证明成本合理。
对于#2:任何带有动态sql的存储过程都应该自动进行双重秘密试用(即:它是允许的,但必须经过多级代码审查才能确保没有更好的方法来实现)。
答案 1 :(得分:1)
当涉及到网络的力量时,最好不要删除任何东西。因此,拥有一个已删除的日期,您可以排除那些已从搜索中“删除”的对象。这也可以帮助那些意外删除帐户的疯狂客户。显然,这不应该用在每个领域。
答案 2 :(得分:1)
使用超大型数据库(VLDB)时会立即浮现在脑海中的一些想法:
您应该实施表格分区吗?
具有数百万条记录的大型数据库表可能会受益于表分区。
我最常访问的表格是什么?
考虑按文件组分离,即将Customer表放在另一个Filegroup和Transaction表上。这允许SQL Server为文件访问创建多个线程,从而创建顺序I / O的可能性。
然后考虑底层物理磁盘结构,即每个文件组的单独LUN。
制定灵活的索引策略
毫无疑问,您已经考虑到了索引策略,但对于VLDB平台,应经常对其进行审核。随着数据量的增加和数据分布的变化,可能会为您的数据访问查询执行计划。您应该计划定期检查索引策略的必要性。
答案 3 :(得分:1)
LastChangedBy等字段非常无用。如果您确实需要审计跟踪,则需要单独的审计表来详细说明更改并维护审计历史记录。如果您不需要审计跟踪,则LastChangedBy等字段只是添加了工作,没有业务价值。
答案 4 :(得分:0)
在我看来,需要 CreatedBy 和创建字段。
答案 5 :(得分:0)
日期应以Utc格式存储,并在客户端转换为本地时间。