DB2连接与双管道

vdgimpew  于 2022-11-07  发布在  DB2
关注(0)|答案(4)|浏览(215)

这两个视图中哪一个需要的CPU较少?
我目前正在检查一些视图的语句,需要知道如果用双管道替换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
5vf7fwbs

5vf7fwbs1#

Information Center开始:
CONCAT函数与CONCAT运算符相同。有关详细信息,请参阅使用串联运算符。
所以,确切的答案是:它们是一样的。然而,IBM确实有这样的说法:
竖线(或在某些国家/地区必须用来代替竖线的字符)可能会导致从一个DBMS传递到另一个DBMS的语句出现语法分析错误。如果语句使用源CCSID和目标CCSID的某些组合进行字符转换,则会出现此问题。因此,CONCAT是首选的串联运算符。

vx6bjr1n

vx6bjr1n2#

我不认为会有性能差异,但使用管道使它更容易阅读。

mf98qq94

mf98qq943#

为什么不干脆做
创建视图VIEW1作为从表中选择A连续B连续C连续D连续E连续F连续F连续G连续H连续I

ybzsozfc

ybzsozfc4#

不确定性能如何,但在处理null值时它们的行为会有所不同。请参阅:String concatenation with a null seems to nullify the entire string - is that desired behavior in Postgres?

相关问题