2011-04-26 166 views
2

使用SQL Server Management Studio將表中的全部內容從SQL Server複製到MySQL計算機上的相同表中。 MySQL數據庫使用MySQL ODBC 5.1驅動程序作爲鏈接服務器連接到Management Studio。使用一個簡單的語句工作正常,但執行速度非常緩慢。極慢地將SQL Server上的OpenQuery性能插入MySQL鏈接服務器

INSERT INTO openquery(MYSQL, 'select * from Table1') 
SELECT * from MSSQL..Table2 

我有一個約450,000條記錄的表,它需要超過5個小時的轉移。這是正常的嗎?我沒有連接MySQL服務器的經驗。

+0

您正在從mssql源物理地複製450,000條記錄的每個人到一個新的服務器和磁盤位置。 5小時是每個記錄40毫秒。記錄數據速度慢嗎? – boisvert 2011-04-26 22:35:20

回答

3

如果從管理工作室運行它,只需運行「SELECT * from MSSQL..Table2」需要多長時間?

有多種原因,您的查詢可能會很慢:

  • 當你進行大規模的批量複製,你通常不會做這一切在一杆,因爲大的插入/更新/刪除交易是非常昂貴的,因爲DB必須隨時準備回滾,直到交易完成。最好是批量複製(一次說1000條記錄)。做這個批量複製的好工具是SSIS(它隨SQL Server一起提供),它可以爲你做這個批處理。

  • 您應該明確指定要複製的表上的排序順序,尤其是在複製到具有聚簇索引的表中時。你應該確保你按照聚簇索引的排序順序插入(即聚簇索引通常是一個int/bigint,因此確保記錄按1,2,3,4而不是100,5,27,3等順序插入)。 )

+0

+1表示SSIS和表現緩慢的原因 – Arj 2011-06-01 09:36:08