Sky*_*Sky 14 performance sql-server-2008
从我目前所见,当我们定义一个表时,通常我们将主键作为第一列。如果存在所有表中通用的杂项列,则它们位于表定义的底部。例如:Id(pk)第一列和 IsActive 和底部的时间戳。
我想知道除了跨数据库的一致性之外,这种做法是否还有更多好处。列的顺序是否会影响性能?如何?我需要在团队中证明我的观点,即在表中随机放置主键和公共键(例如 IsActive(布尔列显示记录是否处于活动状态))不是一个好习惯!
开发人员在 Visual Studio 2010 中的实体模型中创建实体,如果他们向现有实体添加新属性,显然 VS 没有将它们按正确顺序排列。这是他们忽略表中列顺序的借口。它会影响性能吗?
我很欣赏你的想法。
gbn*_*gbn 21
表的磁盘结构与 CREATE TABLE 的列顺序无关。这意味着性能不受影响。
每个条目(这适用于数据和索引)看起来像
有关更多信息,请参阅存储引擎内部:记录剖析
有几种情况可能很重要。但是您通常不会每天都找到它们:通常在您可以在这里或博客中找到的复制脚本中。例如,请在此处查看对我的 SO 答案的评论:https : //stackoverflow.com/a/6121952/27535 以及@SQL Kiwi 下面评论中的链接
但是,从一致性、可维护性和可读性的角度来看,我首先将 PK 列与实际 PK 键列的顺序相同。话虽如此,我通常不会重建表以确保列位于“正确”的位置。除了我的强迫症之外,它确实没有什么区别。
归档时间: |
|
查看次数: |
1264 次 |
最近记录: |