2011-10-04 136 views
1

我正在使用tablediff.exe工具比較兩個表的差異,並在遠程SQL Server上生成更改腳本,但執行所需的時間非常長(超過1.5小時我放棄了)。 tablediff.exe運行在我的本地機器上,但數據庫在另一臺服務器上(這些都是要求 - 我無能爲力)tablediff工具需要很長時間才能執行

我已經對SQL Server進行了配置文件,它似乎執行了查詢奇怪的是我期望的慢。

這些表格有大約200萬條記錄,但是當我在本地機器上執行此操作時,它看起來要少很多(大約2-3分鐘)。

我試圖找出這可能是什麼原因,如果有什麼辦法可以加快速度呢?

+0

難道有兩個表之間存在太多的差異,這就是爲什麼它需要很長時間? – TheBoyan

回答

1

tablediff.exe從遠程服務器獲取所有數據並進行本地比較。很長一段時間是上傳/下載200萬行的時間。

進行特定查詢並在遠程服務器中執行。例子: 等於行

SELECT * FROM bd1.schema1.table1 
INTERSECT 
SELECT * FROM bd2.schema2.table2 

行中bd1.schema1.table1,而不是在bd2.schema2.table2

SELECT * FROM bd1.schema1.table1 
EXCEPT 
SELECT * FROM bd2.schema2.table2 
+0

這是一個有趣的方法。我曾經想過把這樣的東西當作tablediff的一個不同的解決方案,就像在某個時間段執行的存儲過程一樣。但是,我如何生成差異腳本呢,我還需要這個功能嗎? – TheBoyan

相關問題