我正試圖優化存儲過程我維護,並且想知道是否任何人都可以告訴我以下選項的性能好處/懲罰。對於我的解決方案,我基本上需要對存儲在表格IMAGE列中的圖像運行轉換程序。轉換過程位於外部.EXE文件中。這裏是我的選擇:SQL遊標存儲過程與使用UDF查詢
目標表的結果拉入一個臨時表中,然後使用遊標去在每個行中的表和運行image列的存儲過程。存儲的proc呼叫到.EXE。
創建一個調用.EXE文件的UDF,並運行類似於「從TargetTable中選擇UDFNAME(Image_Col)」的SQL查詢。
我想我正在尋找的是一個想法,多少開銷將被添加創建的遊標,而不是做一個集?
一些額外的信息:
- 在這種情況下,集合的大小爲最大。 1000
- 正如下面的答案所提到的,如果以UDF集合的形式完成,這是否意味着外部程序一次會全部打開1000次?還是有優化到位?顯然,在多處理器系統上,運行多個進程實例可能並不是一件壞事,但1000可能有點多。