sql-server - 更改数据库中表的列顺序对服务器内存有什么影响?
问题描述
我刚开始我的新工作,看了 DBM 之后我很震惊。这是一个巨大的混乱。
现在我想做的第一件事是在表列的顺序上获得一些一致性。我们通过 .dacpac 发布新的数据库版本。我的同事告诉我,更改列的顺序会迫使 MSSQL 创建一个临时表来存储所有数据。MSSQL 然后创建一个新表并将所有数据插入到该表中。
因此,假设我的服务器仅运行 2GB 的 RAM,并且在硬盘驱动器上剩余 500MB 存储空间。整个数据库重量为 20GB。更改列的顺序是否可能会导致麻烦(与内存相关)?我同事的说法正确吗?
我无法为我的问题找到任何好的来源。谢谢!
解决方案
你不应该“一张一张地去”。
你应该让你的表保持原样,如果你不喜欢某个表的列的顺序,只需创建一个view
你想要的重新排序你的列。
不仅改变列的顺序会导致你的表被重新创建,所有的indexes
都将被重新创建,你会遇到FK
约束问题。
毕竟,您将一无所获,只会造成伤害。您将浪费服务器资源,使您的表暂时无法访问,并且无论如何都不会按照您的定义存储列,在内部它们将以“var-fix”格式存储(分为固定长度和可变长度)
推荐阅读
- swift3 - 如何将操作按钮添加到 collectionView 的部分单元格中?
- yii - 在 Yii 2 中创建的缓存文件总是使用错误的权限
- r - 使用 ggplot 将形状分配给 n 行的 n-1 点
- json - Angular:通过 routerLink 传递复杂的 JSON
- matlab - 交换条件时,带有“或”运算符的 if 语句给出不同的结果
- mongodb - 从 MongoDB 中 sid=1 的评级中选择 avg(rate)
- html - Angular ng-repeat 排序成几个 div
- node.js - 是否从 botbuilder-cognitiveservices.js 中删除了 LuisActionBinding.js
- asp.net - Asp.net core 2 与 angular 6 模板
- java - 找不到 Spring JPA 存储库转换器