はじめに
この記事では、カード、DataFlow、Beast Modeにおけるデータパフォーマンスを最適化するための一般的なガイドラインについて説明します。 これらは一般的なガイドラインとして使用するべきものであり、すべての使用事例に当てはまるわけではありません。すべての変更は、本稼働環境に実装する前にテストしてください。キャッシュ
Domoでキャッシュを活用するために、DataSetの更新は必要最低限にとどめます。Beast Mode
複雑なBeast ModeはDataSetの各行に対して計算されるため、クエリのパフォーマンスを低下させる要因となります。テキストフィールドに対して計算されたBeast Modeは、多くの場合、最も多くのクエリを必要とします。大規模なCASEステートメントやネストされたCASEステートメントも、パフォーマンスに大きな影響を与える可能性があります。 推奨:- Beast Modeを、テキスト/文字列フィールドではなく数値フィールドまたは日付フィールドで作成する。
- Beast ModeをDataFlowの計算に変換する。これにより、例えば、カードを表示するクエリを実行する際に、スクリプトを計算する必要がなくなります。
- 文字列フィールドで計算される大規模なCASEステートメントを避ける。
- 長いテキストフィールドのテキストマッチングにLIKEを使用しない。
対象となるDataSet
各DataSetについて、以下のような質問を考えてみます。- すべての行は、そのDataSetから作成されたカードに必要か?
- 最も一般的な使用事例において、本当に必要な履歴データはどれくらいか?
DISTINCT
COUNT DISTINCTによる演算はコストが高くなる場合があります。代わりに、以下の選択肢を試してみてください。- APPROXIMATE_COUNT_DISTINCTを使用して値を近似させる。
- スクリプトにあるDISTINCTキーワードを減らす。
- COUNT DISTINCTを実行する前に行数を減らす。