首页 > 解决方案 > 更改数据库中表的列顺序对服务器内存有什么影响?

问题描述

我刚开始我的新工作,看了 DBM 之后我很震惊。这是一个巨大的混乱。

现在我想做的第一件事是在表列的顺序上获得一些一致性。我们通过 .dacpac 发布新的数据库版本。我的同事告诉我,更改列的顺序会迫使 MSSQL 创建一个临时表来存储所有数据。MSSQL 然后创建一个新表并将所有数据插入到该表中。

因此,假设我的服务器仅运行 2GB 的 RAM,并且在硬盘驱动器上剩余 500MB 存储空间。整个数据库重量为 20GB。更改列的顺序是否可能会导致麻烦(与内存相关)?我同事的说法正确吗?

我无法为我的问题找到任何好的来源。谢谢!

标签: sql-serverdatabase

解决方案


你不应该“一张一张地去”。

你应该让你的表保持原样,如果你不喜欢某个表的列的顺序,只需创建一个view你想要的重新排序你的列。

不仅改变列的顺序会导致你的表被重新创建,所有的indexes都将被重新创建,你会遇到FK约束问题。

毕竟,您将一无所获,只会造成伤害。您将浪费服务器资源,使您的表暂时无法访问,并且无论如何都不会按照您的定义存储列,在内部它们将以“var-fix”格式存储(分为固定长度和可变长度)


推荐阅读