sql server 修改表字段长度耗时问题分析

  产品报了一个bug,保存某个单据时报错,数据库错误。本地调试后发现是某个表字段长度不够导致,所以解决起来很简单,优化下长度即可,通过ALTER TABLE修改表字段长度。

  通常这么做无可厚非,字段不够当然是加字段了。不过随着业务量的提升,很多看似简单的问题在处理起来的时候,也许并不简单!

  语法如下:

ALTER TABLEALTER COLUMN 字段 类型

  在执行过程中,需要考到执行时间,有些SQL是在程序里连接数据库跑的,如果执行时间过程会报超时。而这里的SQL,如果表数据不多,一般很快,但是如果表的数据量大,上百万,千万,甚至有索引的情况下,就会很耗时了。

  具体耗时要看数据库的实际情况,笔者测这边的测试库,2w多条数据6s左右。

  当然了,如果实在耗时久,可以通过换表的方式处理,思路就是新建个表,把旧表copy过去,再删除旧表,新表改名。

 

  国内相关的资料太难查找,这里列出一些搜集的资料给大家参考:

  更改大表中的列:案例研究 |SQL 研究 (sqlstudies.com)

  [已解决]当我更改 MS SQL Server 2014 的表时会发生什么情况 - CodeProject

  KB2986423 - 修复:当行大小超过允许的最大大小时,向表添加新列需要很长时间 - Microsoft 支持

  ALTER COLUMN 性能下降 – SQLServerCentral 论坛

  如何加快在 Sql Server 中向大表添加列的速度 - 服务器故障 (serverfault.com)

  在超大表上扩展列长度 – SQLServerCentral 论坛

  SQL Server 2016 Online ALTER COLUMN 操作 (mssqltips.com)

  了解数据库管理:Berzukov,Pablo:9781450500913:Amazon.com:书籍

posted @ 2024-05-27 13:56  顾星河  阅读(209)  评论(0编辑  收藏  举报