2013-03-05 64 views
6

這兩個視圖中的哪一個需要較少的CPU?DB2 concat vs double pipe

我目前正在檢查一些視圖的句子,並且需要知道如果concat函數被雙管替換時是否有一些性能改進。

create view VIEW1 as 
select concat(concat(concat(concat(concat(concat(concat(concat(concat(A, B),C),D),E),F),F),G),H),I) from TABLE 

create view VIEW2 as 
select A||B||C||D||E||F||G||H||I from TABLE 
+0

如果有任何可衡量的性能差異,我會**非常**。 – 2013-03-05 18:44:18

+0

concat函數與concat運算符相同嗎?性能差異可能是http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000781.html?cp=SSEPGG_10。 5.0%2F2-12-4-1-25 - http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000736。 html?cp = SSEPGG_10.5.0%2F2-12-2-10 Concat操作符是concat函數的別名嗎?那麼調用一個別名會更貴一些。但我不確定這一點。 – AngocA 2014-12-06 10:26:51

回答

11

Information Center

concat函數是相同的毗連運算符。有關更多 的信息,請參閱With the concatenation operator

因此,最終答案是:它們是相同的。然而,IBM確實有這樣一段話:

豎線(或必須在地方的一些國家 豎線使用的字符)可在 報表從一個數據庫管理系統傳遞到另一個引起了解析錯誤。如果 語句與源和目標CCSID的某些組合進行字符轉換,則會出現此問題。因此,CONCAT是優選的連接運算符 。

+0

在問我之前,您正在回答我所有的DB2問題。 – 2015-02-24 03:31:42

1

我不認爲會有性能差異,但使用管道 - 使它更易於閱讀。