关于性能:SQL Server-列顺序重要吗?

关于性能:SQL Server-列顺序重要吗?

SQL Server - Does column order matter?

在性能和优化方面:

  • 在SQL Server中构造表时,我按什么顺序放置列是否重要?
  • 我的主键是否在第一列有关系吗?
  • 构造多字段索引时,列是否相邻是否重要?
  • 使用ALTER TABLE语法,是否可以指定要添加列的位置?

    • 如果没有,如何将列移动到其他位置?

在SQL Server 2005中,可为空的可变长度列的放置会对空间产生影响-在定义的末尾放置可为空的可变大小列可以减少空间消耗。

SQL Server 2008添加了" SPARSE"列功能,可以消除这种差异。

看这里。


对于第四个项目符号:否,您无法指定要在何处添加该列。这是ALTER TABLE的语法:https://msdn.microsoft.com/en-us/library/ms190273.aspx

在MySQL中,它们提供了ALTER TABLE ADD ... AFTER ...之后的功能,但这在T-SQL中没有出现。

如果要重新排序列,则必须重建表。

编辑:对于最后一个最后一个要点,您将不得不删除表并重新创建它以对列进行重新排序。一些操作SQL数据库的图形工具会为您完成此操作,并使您看起来好像在对列进行重新排序,因此您可能需要调查一下。


我会说所有这些问题的答案都是"否",尽管我在MS-SQL方面的经验可以追溯到SQL2000。在SQL2005中可能会有所不同


前3个为否,因为索引将保存数据,后3个也不为


创建表时列顺序无关紧要。我们可以在从数据库中检索数据时排列列。主键可以设置为任何列或列的组合。


对于第一个项目符号:

是的,至少在使用不推荐使用的BLOB imagetextntext并使用SQL Server <= 2005的情况下,列顺序确实很重要。

在这种情况下,您应该将这些列放在表的"末尾",并且每次检索时都会对性能造成影响。

如果您使用DAL从此类表中检索数据,那么这是延迟加载模式的理想之地。


推荐阅读

    提高3A四核羿龙II游戏配置的性能

    提高3A四核羿龙II游戏配置的性能,,以节能环保为主题的IT产业,目前3A低端平台处理器、主板芯片组、独立开发卡性能突出,特别是在与AMD的处理

    3500元超额值学生娱乐结构的优化配置

    3500元超额值学生娱乐结构的优化配置,,作为一个DIY的主流用户领域的学生,每个用户51学生攒机的高峰。因为学生用户没有稳定的收入来源,攒机

    优化PostgreSQL中的批量更新性能

    优化PostgreSQL中的批量更新性能,数据,表格,在Ubuntu 12.04上使用PG 9.1. 我们目前需要24小时才能运行大量UPDATE数据库上的语句,其形式

    诺基亚威图性能好到哪里

    诺基亚威图性能好到哪里,诺基亚,手机,诺基亚威图性能好到哪里这是一部以前列出的手机。即使当时配置不高,该品牌的手机也不依赖于该功能吸

    魅蓝note6性能参数有哪些

    魅蓝note6性能参数有哪些,摄像头,蓝牙,魅蓝note6性能参数有哪些魅力蓝色Note6最好拍照。电池寿命更长。蓝色Note6使用高通 snapdragon 625

    512内存的电脑优化|笔记本内存512

    512内存的电脑优化|笔记本内存512,,1. 笔记本内存512够用,因为运行非常流畅,苹果笔记本 16g512的运行内存是16g内存,机身内存是512g内存,运行

    怎么设置主键|access怎么设置主键

    怎么设置主键|access怎么设置主键,,access怎么设置主键Access是一款功能强大的关系数据库管理系统,该软件具备开发软件功能,可以帮助用户开

    Windows7下固态硬盘的优化技术

    Windows7下固态硬盘的优化技术,,当微软开发Windows Vista时,固态硬盘没有那么热,所以没有进行优化。Windows 7是不同的。微软从一开始就把SS

    国产电脑cpu测试|国产CPU性能

    国产电脑cpu测试|国产CPU性能,,国产CPU性能天玑9000答: 天玑9000更厉害。因为天玑9000是 最新发布的cpu,也是现在的天花板。而麒麟9000是 2