首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >企业级数据库设计技巧

企业级数据库设计技巧
EN

Stack Overflow用户
提问于 2009-07-11 16:39:27
回答 6查看 1.3K关注 0票数 8

我使用了一个企业应用程序,并学习了一些DB设计的技巧。

所有表都应该有以下有助于审计跟踪的字段--具有动态LastChangedPage

  • All的LastChangedByLastChangedLastChangedBy存储过程应该具有@bDebug参数。默认情况下,它被设置为0。如果将其设置为1,则打印动态SQL语句,这将对调试非常有帮助。

  • For CRUD有一种部分更新表的方法。如果您的表中有10个字段,并且在其中一个SP中,您只需要更新5个字段,那么就需要一个抽象层来完成这个任务。

你还能想到其他有用的建议吗?

编辑:谢谢你的所有答案。我仍然在寻找一个可以提供DB设计/技巧/策略的链接的答案。

EN

回答 6

Stack Overflow用户

发布于 2009-07-11 16:50:50

对于#1:移到Server 2008,只需打开更改数据捕获。如果您确实需要保持详细的审计跟踪,仅此特性将证明成本是合理的。

对于#2:任何带有动态sql的存储过程都应该自动处于双秘密试用状态(即:它是允许的,但必须经过多个级别的代码评审,以确保没有更好的方法)。

票数 4
EN

Stack Overflow用户

发布于 2009-07-11 17:37:50

当谈到网络的力量时,最好不要删除任何东西。因此,有一个deletedOn日期,您可以将那些已经“删除”的对象排除在搜索中。这也有助于疯狂的客户谁不小心删除了他们的帐户。显然,这并不是每个领域都应该用到的。

票数 1
EN

Stack Overflow用户

发布于 2009-07-12 09:15:58

在使用非常大的数据库(VLDB)时,会立即想到一些想法:

您应该实现表分区吗?

拥有数百万条记录的大型数据库表可能受益于表分区。

  • 此Server特性的可用性仅限于使用企业版。
  • 适用性取决于您的平台硬件和表数据中适当分区键的可用性。

我最常访问的表是什么?

考虑按Filegroup进行分离,即在一个Filegroup上放置Customer表,在另一个Filegroup上放置事务表。这允许Server为文件访问创建多个线程,从而创造了顺序I/O的可能性。

然后考虑底层物理磁盘结构,即为每个Filegroup提供一个单独的LUN。

设计了一个灵活的索引策略

毫无疑问,您已经考虑到了索引策略,但是对于VLDB平台,应该经常对此进行审查。随着数据量的增加和数据分发的变化,您的数据访问查询的执行计划可能会发生变化。您应该计划是否需要定期检查索引策略。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1114086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档