2012-07-06 51 views
9

我最近完成了SSIS課程。SSIS性能中的存儲過程vs嵌入式SQL

我最喜歡的一個最好的做法是總是在SSIS中的數據流任務中使用存儲過程。

我想周圍有安全性的爭論,但導師表示,由於存儲過程在SQL Server有上進行的所有工作「原生」的/是一個顯著的性能提升。

對此或有爭論點的文章有沒有道理?

感謝

+0

有趣的話題。 – 2012-07-06 09:31:28

回答

4

記住 - 大部分課程由無能的人,因爲人的知識掙錢做諮詢所付很多比訓練做得更好。大多數培訓人員生活在一間從未花費9個月的時間在21tb數據倉庫上工作的玻璃屋內;)

這是錯誤的。點。

它不僅使當SQL語句不拉數據從數據庫中感 - 例如合併表等

否則它就是你有多聰明建立SSIS側的問題。 SSIS可以使用批量複製機制寫入不使用SQL的數據。 SSIS更加靈活,如果你從遠程數據庫提取數據,那麼不離開數據庫(即處理本地數據)的理由是一個愚蠢的問題。當我將數據從SQL Server A複製到SQL Server B時,B上的SP無法處理來自本機的數據。

一般來說,只有當您將數據從A中取出並將其推送到A並且所有處理都可以在一個簡單的SP中完成時 - 這是一個退化的邊緣情況(即簡單的邊界情況)。

SSIS的優點是處理數據的用於數據流,這在許多情況下,需要在項目和做,在存儲過程中會變成噩夢的環境中的靈活性。

+2

確保您的拼寫正確有一點努力很長的路要走。 – JsonStatham 2012-07-06 10:33:47

+0

非常簡單,如果從數據庫獲取數據並將其推送到同一數據庫,SP將會有所幫助。否則,在數據流任務中使用原始SQL是「可接受的」 – 2012-07-06 13:37:38

+0

從技術上講,這是核心 - 實際上它也取決於您與數據的相關程度。 – TomTom 2012-07-06 13:46:56

2

舊的線程,但一個相關的主題。

對於數據源連接,我有利於對嵌入的查詢時的SP A)的邏輯足夠簡單以兩種方式進行處理,和B)SP的支撐大於與包裝工作更容易。 如果SP返回相當直接的結果集,我還沒有發現數據源的性能差異(如果有的話)。

我們的商店有一個更多的涉及包的部署過程,這使得SP成爲首選的來源。

我還沒有找到非常多的SP作爲數據目標的應用程序,除了偶爾的記錄SP調用。