web-dev-qa-db-ja.com

SAP HANA CDS-ビューvs計算ビューvsテーブル関数

SAP HANAでは、計算ビューの作成に使用されます。

以前、計算ビュー(コンパイル後に列ビューになる)がデータベースSQLビューよりも優先されることを学びました。現在CDS-Viewsを使用しているので、これがまだ当てはまるかどうかはわかりません。特にパフォーマンスに関して。

また、(スクリプト計算ビューを置き換えた)テーブル関数とCDSビューの違いは何ですか?

4

私はそれを追加します

  • 計算ビューは意味的に豊富です。 SQLビューは、メジャー、ディメンション、階層を認識しません。 https://blogs.sap.com/2019/08/26/what-is-the-difference-calcview-versus-sql-view/
  • 実行計画の観点からの違いはますます少なくなっています。 Hana 2.0 SP4では、ほとんどのグラフィカルな計算ビューが内部で単一のSQLステートメントに変換され、SQLエンジンによって実行されます。したがって、その意味では、CalcViewを使用すると、モデルに関する追加情報とSQLエンジンのクエリパフォーマンスが得られます。

CDSのLarsの説明は完璧です。そこに追加するものはありません。

1
Werner Daehn

しかし、ライセンスが限られているため(つまりランタイムバージョン)、テーブル関数を作成できない状況を想像してみてください。スクリプト化されたビューにとどまります。

現在のCDSに対するHanaアーティファクトの主な利点は、複雑なケースで入力パラメーターを使用してリソースとクエリのパフォーマンスを最適化できることです(ロジックがAS /アプリではなくDBにプッシュされる場合)。しかし、多くのネイティブSQL機能はまだグラフィカルビューでは利用できません(たとえば、存在、JOIN on BETWEENなど)。そのため、10年後にHANAアーティファクトは「非常にまれ」になると思います。

CDS構文を学んでください:)

0
refeline

あらゆるメディア(StackOverflow、SAPブログ、記事、Twitter)でLarsの記事またはPovを読んだときは常にうれしい経験。

SQLスクリプティング(SP、TF、SF)で見逃しているもう1つのことは、結合の最適化とInformation ViewのSQLの伝達であることを指摘しておきます。

これは、ユーザーまたはアプリが要求する列に応じて実行される1つのビューを提供するために、柔軟なモデル(特定のシナリオにのみ関連する動的結合を除く)に焦点を当てています。セマンティクスを使用する場合は、情報ビュー内にTFを公開して、追加するだけです。

CDSには両方のオプション(結合の最適化、SQL伝播、および注釈)がありますが、高度なシナリオや複雑なシナリオ(CDSにはないウィンドウ関数)、および非SAP開発者にとっては、よりシンプルで、初心者向けの頼もしいアプローチ

0