如何處理巨大的 16GB SQL 文件?
我已經從 MySQL 表中導出了 abc.sql 文件。這個 abc.sql 文件大小為 16 GB,包含大約 2800 萬條插入語句。
我正在尋找將其儲存在 SQL Server 數據庫中的選項。
幾個問題:
- 如何打開 16GB 的文件?
- 是否可以將 2800 萬條插入語句從 MySQL 載入到 SQL Server?
我曾經在導入 5GB SQL 文件時遇到過類似的問題。大多數編輯器的最大容量為 256mb 或 512mb,我所知道的(在 Windows 上)唯一可以毫無問題地打開 GB 文件的編輯器是emEditor(有試用版)。我的舊裝備有 8GB 記憶體(是你的兩倍,但大部分時間都用了 80%)和 C 盤上約 20-25 GB 的可用空間可以在約 2 分鐘內打開它(請記住我的硬體是非常舊的 DDR3,帶有 gen2 或 gen3 i7 處理器和慢速驅動器)。
最大的賣點(即使您必須等待它載入)是能夠查看模式和程式碼,以防導出不包括表的 DDL(在我的場景中就是這種情況)。
根據所使用的導出工具,您的插入語句可能有 ` for strings 而不是 ‘,幸好使用 emEditor 您可以將它們全部替換為 ‘。這將允許您毫無問題地將程式碼導入 SQL Server。
我解決它的方法是修改文件,使其可以本地導入 SQL Server 並使用SQL CMD 執行腳本文件。
正如其他人所建議的那樣,我會嘗試使用 SSMS 導入嚮導或 SSIS 將數據直接從 MySQL 導入 SQL Server。
如果你不能這樣做並且你被插入語句卡住了,我會嘗試將文件分成更小的部分。我會在powershelll中寫一些東西,一次將一百萬行導出到另一個文件中。您可以嘗試不同的文件大小,看看哪種效果最好。
另一種選擇不是分解文件,而是去掉插入語法並將文件轉換為 BCP 批量載入文件。您可以在另一台機器上執行此操作。
第三種可能性是將數據導入到可以處理它的更大機器上的 SQL Db,然後從 SQL 複製到 SQL。
這些都不是理想的,但如果你別無選擇,它可能值得嘗試。