2013-03-05 5 views
6

Welche der beiden Ansichten benötigt weniger CPU?DB2 Concat vs Doppelrohr

Ich überprüfe derzeit die Sätze einiger Ansichten und muss wissen, ob es eine Leistungsverbesserung gibt, wenn Concat-Funktionen durch doppelte Pipes ersetzt werden.

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

Ich wäre ** sehr ** überrascht, wenn es einen messbaren Leistungsunterschied gäbe. –

+0

Ist die concat-Funktion die gleiche wie die concat-Funktion? Der Leistungsunterschied ist wahrscheinlich 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 Der Concat-Operator ist ein Alias ​​für die concat-Funktion? dann ein Alias ​​nennen ist ein wenig teurer. Aber ich bin mir da nicht sicher. – AngocA

Antwort

11

Von Information Center:

Die CONCAT Funktion ist identisch mit dem CONCAT Operator. Weitere Informationen unter finden Sie unter With the concatenation operator.

So lautet die definitive Antwort: Sie sind gleich. Allerdings hat IBM, dies zu sagen:

Vertikale Balken (oder die Zeichen, die anstelle von vertikalen Balken in einigen Ländern verwendet werden müssen) können Analysefehler in Aussagen von einem DBMS zum anderen weitergegeben verursachen. Das Problem tritt auf, wenn die -Anweisung eine Zeichenumwandlung mit bestimmten Kombinationen von Quell- und Ziel-CCSIDs durchläuft. Daher ist CONCAT der bevorzugte Verkettungsoperator .

+0

Sie beantworten alle meine DB2-Fragen, bevor ich sie frage. –

1

Ich glaube nicht, dass es Leistungsunterschiede geben wird, aber die Verwendung von Pipes erleichtert das Lesen.