小编Kev*_*one的帖子

NULL 或擦除列的最快方法

我有一个独特的情况,我需要快速匿名化一个列。我的意思是任何删除数据的方法,无论是 NULL'ing、消隐还是其他什么。最多可以更新 2000 万条记录,并且我正在更新的列上没有索引。

我尝试了几件事,例如:

Update TABLE Set COLUMN = NULL
Run Code Online (Sandbox Code Playgroud)

这显然是性能最差的查询。我已经修改它以从该集合中排除任何当前的 NULL 或空白,但它仍然很慢。

我试图删除并重新创建列,到目前为止是即时的。但不幸的是,由于业务原因,列顺序很重要,所以这会破坏它。(出于问题的目的,假设重新排序列是不可能的)。

最近我尝试将列类型更改为char(1),然后返回到text- 具有更好的性能。但是,在看到它通过删除并重新创建列以闪电般的速度运行之后,我很好奇是否有办法保持列顺序不变。显然,SQL Server 能够立即将大约 2000 万条记录作为 NULL 生成 - 必须有一个聪明的方法来解决这个问题吗?

sql-server

7
推荐指数
1
解决办法
5521
查看次数

标签 统计

sql-server ×1