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:書籍

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章