昂捷論壇≡FAQ≡□-通用類 → 修改大數據量表屬性的方法


  共有21414人關注過本帖樹形打印

主題:修改大數據量表屬性的方法

帥哥喲,離線,有人找我嗎?
zhaowencheng
  1樓 個性首頁 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發短信
等級:下士 帖子:9 積分:317 威望:0 精華:0 注冊:2013/5/27 13:51:07
修改大數據量表屬性的方法  發帖心情 Post By:2014/1/5 23:17:47

 

維百tb_o_sg_card修改字段屬性

 

濰坊中百的項目從2013年3月1日上線以后,有幾個需求和BUG修改完畢,需要升級程序,最新版本程序里面需要tb_o_sg_card屬性,此表的數據量有2.25億,占用118G空間,維百的服務器數據庫所在的磁盤只有98G的空間(上半年計劃用云存儲),直接執行后臺庫的腳本提示PRIMARY文件組沒有空間,tb_o_sg_card在修改屬性時候日志文件太大,通過本次對tb_o_sg_card修改的經驗提供空間不夠情況修改大表屬性的處理方法:

1、  查詢數據庫中所有表占用的空間大小

select OBJECT_NAME(ID) ,SIZE = sum(reserved) * CONVERT(FLOAT, (SELECT LOW FROM MASTER.DBO.SPT_VALUES WHERE NUMBER = 1 AND TYPE = 'E')) /1024.00/1024.00

from sysindexes

where indid in (0,1,255)

GROUP BY ID

ORDER BY SIZE DESC

2、  TRUNCATE TABLE日志表(tb_log_module、tb_log_err等),drop以前處理數據備份的表,刪除過期數據的表(tb_o_sg_card_forsum此表只保留本月數據)

3、  日結以后收縮數據庫

4、  備份tb_o_sg_card數據

5、  Truncate table tb_o_sg_card表

6、  當日數據上傳完畢以后修改tb_o_sg_card的表的屬性,備份表的觸發器和索引

7、  用批處理修改門店前置機服務器上tb_o_sg_card表的屬性,如果門店比較多,可以分多個批處理進行操作

8、  查看tb_o_sg_card表里面的數據,把備份的數據恢復

9、  創建表的觸發器和索引

10、              核對tb_o_sg_card的數據是否完整,如果完整,刪除備份的表


修改大表屬性的時候,會比較慢,并且產生大量的日志,可以利用備份數據----truncate表數據-----修改表屬性-----刪除索引和觸發器----恢復表數據---恢復索引和觸發器的屬性會比較快,成功率高。

在刪除tb_o_sg_card_forsum一個月的數據時用了三個小時,并且產生了80G的日志,如果希望操作過程中產生較少了的日志,可以做如下操作:

--設置最小日志記錄模式
alter database set recovery simple
delect from tb_o_sg_card_forsum where c_datetime < ‘20140101’

 --恢復日志記錄模式
alter database set recovery full



使用IE9無法添加附件的解決方法 支持(0中立(0反對(0回到頂部
99尹人香蕉国产免费天天拍_欧美老汉色国产精品一二区_两个奶头被吃的高潮的视频_亚洲无码视频免费观看