sql - 快速将列 NVARCHAR(4000) 更改为 NVARCHAR(260)
问题描述
我在处理带有几NVARCHAR(4000)
列的表时遇到了非常大的内存授予的性能问题。问题是这些列永远不会大于NVARCHAR(260)
.
使用
ALTER TABLE [table] ALTER COLUMN [col] NVARCHAR(260) NULL
导致 SQL Server 重写整个表,这是数十亿行,只是为了改变什么,不是一种选择。增加列宽没有这个问题,但减少它。
我已经尝试创建一个约束CHECK (DATALENGTH([col]) <= 520)
,或者CHECK (LEN([col]) <= 260)
SQL Server 仍然决定重写整个表。
有没有办法将列数据类型更改为仅元数据操作?没有重写整个表的费用?
解决方案
推荐阅读
- python - 在 python 中以 1D 插入 3D 蒙版数组
- python - 是否可以通过 gstrtspserver 流式传输现有的 gstreamer 管道
- python - 复制具有相同功能的精灵
- google-maps - 用于“分组”折线和标记的 Google 地图事件侦听器
- jquery - 如果 HTML 文件通过 file:///foo.html 加载,CORS 标头?
- javascript - 在 JavaScript 模板引擎中使用 markdown
- java - 未收到组播数据报包
- emacs - 键入括号时不需要的缩进
- python - 在 Python 中 5 秒后将项目添加到列表框
- c++ - 我们可以使用参数化构造函数为结构初始化数组吗?