2017-10-19 74 views
0

我通過SSMS傳輸了數十億條記錄,並着眼於提高遷移速度。我正在嘗試將結果集保存到表中。我考慮到我的前端會很慢,因爲所有的數據都在一張表中。我基本上在尋找各種選擇。所以我想有多個物理表。我只需要最近5年的數據。它會更快如果我執行不同年份過濾器的5個不同版本的相同存儲過程並填充表格。我知道在SSIS中可以實現並行性。我唯一的擔心是因爲所有五個存儲過程並行運行,它們會鎖定表處理SSIS中的性能問題

+0

你是什麼意思「通過SSMS?」 SSIS和SSMS是不同的東西 - 你能澄清嗎?你是指SSIS?你只是在複製表格 - 你真的需要存儲過程來提取數據嗎?您多長時間需要傳輸這些數據?日常?每月?每小時?一旦脫落?目標數據庫是否位於同一臺服務器或不同的服務器上?你必須使用SSIS(BCP本地可以更快,更簡單)。你的意思是「我的前端會變慢」?您是否表示您瞭解前端應用程序在數據傳輸過程中可能存在性能問題? –

+0

嗨尼克,抱歉的混亂。昨天晚上寫的時候已經很晚了。我的意思是SSIS。我知道SSMS和SSIS是不同的:)。我已經有了一個每週都在進行數據遷移的SSIS包。它的計劃通過Sql工作。源數據庫和目標數據庫位於兩臺不同的服務器上。我的意思是減慢應用程序的速度並不是在遷移過程中,而是在遷移結束後。如果我將數據轉儲到一個表中,我的前端需要查詢這個擁有數十億條記錄的表,因此想把它分解成多個表 – Tom

+0

如果您的應用程序存在性能問題,那麼您需要進行性能調整。即:隔離哪些查詢是問題,然後應用諸如索引,分區等來改進。把一張桌子分成許多人幾乎總是做錯事。通過創建一堆過濾的索引或實現表分區,可以獲得非常相似的效果。這使得表格對最終用戶透明。 –

回答

0

您可以查看sql server中的表分區方案。看起來年份欄目在你的分區功能中是一個很好的領域。

Table Partitioning in SQL Server

+0

如果我根據年份劃分主表,我將如何在SSIS中配置它 – Tom

+0

我之前沒有完成表分區。 periodendate字段是datefield,需要從中提取年份,因爲這是過濾器。我需要過去5年的數據,每個分區應包含一年。因此,應該有一個本年度存儲的表格,一張僅存儲2016年年度記錄的表格等。你能幫我創建Google表格分區 – Tom

+0

嗎?它對您的應用程序和SSIS是透明的。你不必做任何特別的事情。這就是要點 - 它是完全透明的。你不需要有任何特殊的代碼或津貼 –