2013-03-05 14 views
6

Który z tych dwóch widoków wymaga mniej procesora?DB2 concat vs double pipe

Obecnie sprawdzam zdania niektórych widoków i muszę wiedzieć, czy są jakieś ulepszenia wydajności, jeśli funkcje concat zostaną zastąpione podwójnymi rurami.

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

Byłbym ** bardzo ** zaskoczony, gdyby istniała jakakolwiek wymierna różnica w wydajności. –

+0

Czy funkcja concat jest taka sama jak operator concat? Prawdopodobnie różnica w wydajności jest dostępna pod adresem 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 Operator concat jest aliasem funkcji concat? następnie wywołanie aliasu jest nieco droższe. Ale nie jestem tego pewien. – AngocA

Odpowiedz

11

Z Information Center:

Funkcja CONCAT jest identyczna dla operatora Concat. Więcej informacji na temat można znaleźć na stronie With the concatenation operator.

Tak więc ostateczna odpowiedź brzmi: są takie same. Jednak IBM ma do powiedzenia:

pionowych pasków (lub znaki, które mogą być użyte w miejsce pionowe paski w niektórych krajach) może spowodować błędy w analizowania sprawozdań przekazywanych z jednego DBMS do innego. Problem występuje, jeśli instrukcja przechodzi konwersję znaków z pewnymi kombinacjami źródłowych i docelowych identyfikatorów CCSID. Tak więc CONCAT jest preferowanym operatorem konkatenacji .

+0

Odpowiadasz na wszystkie moje pytania dotyczące produktu DB2, zanim ich zapytam. –

1

Nie sądzę, że będzie różnica w wydajności, ale używanie rur - ułatwia czytanie.