在性能和优化方面:
- 在 SQL Server 中构建表时,我放置列的顺序是否重要?
- 如果我的主键是第一列,这是否重要?
- 在构建多字段索引时,如果列是相邻的,这是否重要?
- 使用 ALTER TABLE 语法,是否可以指定我想要添加列的位置?
- 如果不行,如何将列移动到其他位置?
在性能和优化方面:
我会说所有这些问题的答案都是否定的,尽管我的MS-SQL经验只到SQL2000。在SQL2005中可能是另一回事。
不要前三个,因为索引将保存数据而不是最后一个
在创建表时,列的顺序并不重要。我们可以在从数据库检索数据时排列这些列。主键可以设置为任何列或列组合。
第一条:
是的,列顺序确实很重要,至少在使用已弃用的BLOBs image
, text
, 或者 ntext
并且使用 SQL Server <= 2005的情况下。
在这些情况下,您应该把这些列放在表的“末尾”,每次检索时都会有性能损失。
如果您正在使用DAL从这样的表中检索数据,这就是Lazy Load模式的完美实践场所。