亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

曲演雜壇--使用ALTER TABLE修改字段類型的吐血教訓

2024-07-21 02:49:46
字體:
來源:轉載
供稿:網友
曲演雜壇--使用ALTER TABLE修改字段類型的吐血教訓

--=====================================================================

事件起因:開發發現有表插入數據失敗,查看后發現INT類型自增值已經到了最大值,無法繼續插入,需要修改INT類型為BIGINT類型。

--=====================================================================

作為一群自認為還算有點經驗的老DBA,大家相互商量下,決定刪除復制,然后禁止訪問,刪除索引,再使用ALTER TABLE修改,最后再加回索引,再修改訪問,再不初始化訂閱,多完美的步驟。

于是在一群人嘻哈圍觀中,執行了上述步驟,運行修改腳本:

ALTER TABLE TableNameALTER COLUMN ID BIGINT

然后大家開始預估執行時間,有預估十幾分鐘的,有預估半小時的,有預估兩小時的,然后開始坐等。。。

半小時過去,沒有完成,有人開始坐不住,一個小時過去,沒有完成,大家開始著急,兩個小時過去,還是沒有完成,老板坐不住啦,殺過來質問。。。

這下玩大啦。。。

--=====================================================================

由于在多臺機器上執行,一些取消執行,一些硬抗等著執行成功,無論是取消執行還是繼續執行,都不知道啥時能回滾成功或者執行成功,大家一邊在惶恐中祈禱早點執行完成,一邊還得給老大們解釋各種原因。

--=====================================================================

表行數:11億+

表數據:60GB+

表情況:1個BIGINT列+3個INT列+1個VARCHAR(50)列(VARCHAR(50)列平均每行長度11Byte)

修改操作:將字段類型INT改為BIGINT

對于繼續執行等待ALTER TABLE成功的:耗時9.5小時完成

對于執行四小時然后取消執行的:耗時超過10小時未完成

--=====================================================================

扯了這么多水貨,咱們來點干貨,為什么修改字段類型消耗這么長時間呢?

首先排查是否由硬件資源瓶頸導致,硬件配置為:

CPU: 48CORE

內存:128GB

IO: FIO卡或高級共享存儲

CPU使用未超過10%,磁盤每秒日志寫入8MB左右,內存未發現等待分配情況

那問題出在那呢?

問題還是出在日志上,可以輕松發現,無論是在FIO卡還是共享存儲上,磁盤每秒日志寫入8MB左右,這個數值太低,經過肖磊咨詢MS工程師了解到,修改數據類型,需要修改每一行的數據,每行數據生成一條日志記錄,從而導致大量的日志,而由于未知原因,每秒寫入磁盤的日志量較低,因此導致整個修改操作維持很長時間。

讓我們來做個測試:

--=======================--使用測試數據庫DB2use db2GO--================--創建測試表CREATE TABLE Test001(    C1 INT IDENTITY(1,1),    C2 BIGINT)GO--================--往測試表中導入2000+行數據INSERT INTO Test001(C2)SELECT OBJECT_ID FROM sys.all_objectsGO--================--備份日志以截斷日志BACKUP LOG [db2] TO DISK='NUL'GO--================--查看當前日志情況--由于日志截斷,當前日志記錄數很少SELECT * FROM sys.fn_dblog(NULL,NULL)ORDER BY [Current LSN] DESCGO--=====================--修改字段類型ALTER TABLE Test001ALTER COLUMN C1 BIGINTGO--================--再次查看當前日志情況--發現增加4000+的日志記錄數SELECT * FROM sys.fn_dblog(NULL,NULL)ORDER BY [Current LSN] DESC

由于我們操作的數據有11億+條,整個ALTER TABLE 操作是一個完整的事務操作,因此是一個極其龐大的事務,再加上其他諸如復制日志讀取等操作影響,導致整個修改耗時9.5個小時,產生書300GB+的日志,對業務造成比較嚴重的影響。

--=====================================================================

推薦解決辦法:

創建新表,將數據導入到新表中,整個導入過程不影響業務訪問(在修改前業務已無法插入數據,沒有寫操作,但是還有讀請求),數據導入完成后,建立對于索引,然后使用SP_RENAME修改表名。這樣可以將業務影響降低到最低,并且導入數據可以并發進行,提高導入效率,減小整個操作周期。

使用此推薦方法,用SSMS自帶的導入導入工具,約4個小時完成導入。

--======================================================================

個人猜想:

整個修改數據類型操作,是單線程操作,并且可能受單個log buffer每秒能產生的日志記錄數限制,因此每秒寫入的日志量較小,修改的行數比較少,導致整個修改操作持續大量時間。

--======================================================================

夜深了,妹子提神


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
九九热精品视频| 91chinesevideo永久地址| xx视频.9999.com| 中文字幕国产精品久久| 韩剧1988在线观看免费完整版| 久久成人精品一区二区三区| 久久久久久久久久久成人| 国产亚洲成精品久久| 日韩国产在线播放| 久久天天躁狠狠躁夜夜av| 久久影院免费观看| 性欧美办公室18xxxxhd| 国产suv精品一区二区三区88区| 欧美专区福利在线| 91网站在线免费观看| 亚洲九九九在线观看| 色悠悠国产精品| 夜夜嗨av色综合久久久综合网| 欧美日韩精品在线视频| 青青精品视频播放| 久久久精品国产网站| 尤物精品国产第一福利三区| 国产精品成人免费电影| 久久久久久12| 亚洲精品日韩久久久| 国产丝袜一区二区三区免费视频| 国产精品久久久久久亚洲调教| 97香蕉超级碰碰久久免费的优势| 成人免费在线视频网站| 色综合久久精品亚洲国产| 韩日欧美一区二区| 精品久久久久久久中文字幕| 人人做人人澡人人爽欧美| 色噜噜狠狠色综合网图区| 国产精品久久久久福利| 日韩三级影视基地| 欧美俄罗斯乱妇| 欧美成人自拍视频| 久久精品91久久香蕉加勒比| 91免费人成网站在线观看18| 久久久av亚洲男天堂| 亚洲精品国产精品国自产观看浪潮| 91视频国产高清| 国产精品扒开腿爽爽爽视频| 欧美亚洲视频在线看网址| 奇门遁甲1982国语版免费观看高清| 欧美在线视频在线播放完整版免费观看| 亚洲大尺度美女在线| 日韩中文字幕在线观看| 精品成人乱色一区二区| 久久久精品美女| 一区二区三区日韩在线| 日韩精品在线观看视频| 国产精品视频网址| 伊人一区二区三区久久精品| 欧美亚洲午夜视频在线观看| 国产精品日日摸夜夜添夜夜av| 国产精品www网站| 久久久久久久久久久久av| 日本国产欧美一区二区三区| 亚洲精品动漫100p| 日韩欧美精品网站| 欧美壮男野外gaytube| 久久精品国产亚洲| 国产精品久久久亚洲| 在线观看欧美日韩| 97视频在线观看成人| 国产男人精品视频| 亚洲精品少妇网址| 国产视频在线一区二区| 日韩国产精品一区| 狠狠躁夜夜躁人人爽天天天天97| 国产精品揄拍500视频| 5566成人精品视频免费| 久久久久久久999精品视频| 精品久久久久久久久国产字幕| 国产欧美中文字幕| 久久中国妇女中文字幕| 国产亚洲精品综合一区91| 亚洲人成电影在线| 久久精品亚洲国产| 欧美日韩加勒比精品一区| 51色欧美片视频在线观看| 国产精品久久久久久久久久免费| 亚洲乱码国产乱码精品精天堂| 一区二区欧美久久| 在线观看中文字幕亚洲| 久久久免费在线观看| 日韩精品在线播放| 亚洲最大的成人网| 国产亚洲人成a一在线v站| 91国语精品自产拍在线观看性色| 国产日韩欧美在线播放| 久久五月情影视| 97免费视频在线播放| 日韩av电影手机在线观看| 97精品国产97久久久久久免费| 宅男66日本亚洲欧美视频| 久久久精品999| www.日韩.com| 久久精品国产欧美激情| 国产在线视频一区| 正在播放国产一区| 日韩二区三区在线| 欧美精品18videos性欧美| 在线性视频日韩欧美| 欧美性猛交xxxx乱大交3| 大桥未久av一区二区三区| 久久久久成人精品| 日韩欧美国产一区二区| 日本欧美一级片| 久久精品人人爽| 亚洲视频精品在线| 欧美一级淫片播放口| 91牛牛免费视频| 日韩av电影中文字幕| 亚洲女人天堂色在线7777| 欧美激情一级欧美精品| 久久精品国产91精品亚洲| 激情懂色av一区av二区av| 国产日韩精品综合网站| 亚洲国产高清高潮精品美女| 欧美国产欧美亚洲国产日韩mv天天看完整| 91在线高清视频| 国产在线视频不卡| 中文在线资源观看视频网站免费不卡| 欧美在线视频导航| 日韩精品视频中文在线观看| 欧美性猛交xxxx富婆弯腰| 国产免费观看久久黄| 奇米4444一区二区三区| 久久综合国产精品台湾中文娱乐网| 成人午夜激情免费视频| 国产精品久久久久久av福利软件| 国产一区二区三区视频免费| 91精品国产乱码久久久久久久久| 成人av资源在线播放| 91黄色8090| 亚洲一区999| 久久久久久国产| 狠狠综合久久av一区二区小说| 国产精品美乳一区二区免费| 日韩av网站电影| 日韩美女av在线| 青青久久av北条麻妃海外网| 亚洲三级 欧美三级| 久久精品电影一区二区| 日韩经典中文字幕| 精品久久香蕉国产线看观看亚洲| 久久国产精品电影| 精品久久久久久久久久久久久久| 欧美日韩国产成人高清视频| 亚洲一二三在线| 青青在线视频一区二区三区| 日本高清+成人网在线观看| 国产一区二区欧美日韩| 久久精品国产2020观看福利| 亚洲精品成人久久| zzijzzij亚洲日本成熟少妇| 国产精品对白刺激| 91人人爽人人爽人人精88v| 国内免费精品永久在线视频| 国产日韩综合一区二区性色av| 亚洲自拍偷拍福利|