自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server DBA三十問之我答(第7題)

數(shù)據(jù)庫 SQL Server
前幾天看到一篇" SQL Server DBA三十問",很不錯,比較中肯。這些題目還是需要一定操作經驗的才能答得上來,其中的很多題目都可以通過books online查到,有些題目我也非常感興趣,因為也處理過類似的問題,所以印象深刻,現(xiàn)在把我的答案寫出來,希望可以幫到有緣人,如果有更好的方案,當然我也很樂意學學。

前幾天看到一篇" SQL Server DBA三十問",很不錯,比較中肯。這些題目還是需要一定操作經驗的才能答得上來,其中的很多題目都可以通過books online查到,有些題目我也非常感興趣,因為也處理過類似的問題,所以印象深刻,現(xiàn)在把我的答案寫出來,希望可以幫到有緣人,如果有更好的方案,當然我也很樂意學學。

題目:7. 在線系統(tǒng),一個表有五千萬記錄,現(xiàn)在要你將其中的兩千萬條記錄導入到另一臺服務器的某個表中,導完后,需要將這兩千萬數(shù)據(jù)刪 除,你預備如何處理,優(yōu)缺點是什么;

我的答案: (先說明一下我的環(huán)境是sqlserver 2000,并且假設他有主鍵id)

第1步:先做一個表,t_update_log,記錄更新過的記錄的主鍵id,記錄修改和刪除的記錄,這步驟的具體作用看下面的步驟;

第2步:導出2000萬的數(shù)據(jù)到另一個庫另一表,我起名為 t_2000w ,我是用dts來處理的,效率很好,如果沒有大字段,2000萬大概3個小時可以導完,如果有大字段,比如很大的varchar,text,ntext 等,那需要的時間久會比較長,具體時間還要看數(shù)據(jù)的大小。

第3步:刪除當前庫導出的2000萬,我把當前庫起名為 t_5000w, 我是這樣來處理的,首先建一個和源數(shù)據(jù)表相同結構的表,起名t_3000w,導入剩下的3000萬條數(shù)據(jù),然后用sp_rename 分別修改兩個表,把t_5000w改成t_5000w_bak,把t_3000w改成t_5000w(即源表), 大概就是這樣,很easy吧。

別急,第一步的準備工作還沒用上呢,而且還有很多細節(jié)的問題。

Q1:如何保證數(shù)據(jù)的準確性,如果你在導入的同時有人對數(shù)據(jù)進行了更新怎么辦?

Q2:盡量減少對用戶的影響,如果在sp_rename修改表名稱需要的時間比較長,而且剛好有數(shù)據(jù)需要insert怎么辦?

我的解決方案:

A1:剛好用到了第1步的表t_update_log,把有更新的記錄再重新導入到新表t_2000w,從此記錄表中t_update_log找出被刪除的id,從t_2000w中刪除;

A2:修改對表t_5000w的insert操作接口,可以再建一個結構和t_5000w一樣的新表,取名t_6000w,如果有自增id,把自增id的當前值設置為6000w,然后新增的數(shù)據(jù)都insert到t_6000w中,如果你的數(shù)據(jù)庫操作都是通過存儲過程統(tǒng)一操作,那很幸運,你只需要修改存儲過程,不需要修改你的。net程序,你甚至可以不停止服務就可以順利升級,在這里存儲過程的優(yōu)越性得到了充分體現(xiàn),如果你不是通過存儲過程,而是sql語句,而且調用的地方很多,那我建議,升級期間你還是暫停服務吧。

當然以上操作都是需要再測試環(huán)境下演練一遍,記錄下每一部需要的時間,并且做好失敗時能及時恢復到之前狀態(tài)。當然升級期間還是建議暫停服務,因為大部分人可以接受暫停服務,但不能接受數(shù)據(jù)丟失。

原文鏈接:http://www.cnblogs.com/gezifeiyang/archive/2011/10/22/2219631.html

【編輯推薦】

  1. 一位資深DBA的十年職業(yè)之路
  2. 客戶的一次疏忽,DBA的一次噩夢
  3. 數(shù)據(jù)庫應用呈三大趨勢 DBA要如何應對
  4. 告訴你,如何成就DBA職業(yè)生涯
  5. NoSQL數(shù)據(jù)庫選型,DBA該考慮什么?
責任編輯:艾婧 來源: 鴿子飛揚的博客
相關推薦

2011-10-24 22:13:37

DBASQL Server

2022-04-01 08:37:07

SpringAPI前端

2010-05-28 15:47:16

雙絞線

2023-02-07 13:51:11

SQLupdate語句

2012-02-24 10:28:32

2010-06-17 14:29:39

2012-10-31 09:41:47

WAN優(yōu)化SSLHTTPS

2014-12-15 11:16:34

vCenter SRM

2011-08-05 11:06:33

VMware vSph虛擬化

2023-11-06 11:13:58

Bean占位符標記

2011-11-03 09:29:32

2011-07-07 14:22:24

SQL查詢update

2011-03-14 14:40:28

VMware Work

2009-12-02 15:02:17

路由器怎么安裝

2016-12-12 14:55:01

AndroidAndroid Vie

2011-12-08 09:47:08

虛擬化應用虛擬化

2023-11-28 07:48:23

SQL Server數(shù)據(jù)庫

2021-01-26 05:07:53

WindowViewWMS

2013-02-18 09:22:48

虛擬化KVM

2024-08-07 13:40:00

點贊
收藏

51CTO技術棧公眾號