Persisted Computed Columnの計算にユーザー定義関数を用いるとパフォーマンスに悪影響がある

良かれと思ってやったのですが

今までComputed Columnの例ではロジックを分ける意味で、ユーザー定義関数を用いていました。

mrgchr.hatenablog.com

が、Computed ColumnやPersisted Computed Columnの計算にユーザー定義関数を用いるとパフォーマンスに悪影響があるようです。

A Computed Column Defined with a User-Defined Function Might Impact Query Performance | SQL Server Customer Advisory Team

www.brentozar.com

上記記事によると、計算ロジックをColumn定義に直接書いた場合は並列化が効いていますが、ユーザー定義関数を用いた場合では並列化が効いていません。

SQL Serverにてユーザー定義関数が並列化されないというのは、どうやら有名なことのようで、SQL Server2016でもサポートされていません。

dba.stackexchange.com

Computed Columnを使うときにはユーザー定義関数には気を付けた方が良いですね。