ワークロードユニットの拡張と最適化について

お世話になっております。

Bubbleサポートより以下の内容に関するメールが届きました。
「あなたのアプリが利用可能なワークロードユニットの75%を使用した。」
100%に達した場合アプリを削除するとの内容が書かれており戦慄しております。

ログを確認したところ画像の使用率でした。


圧倒的Fetching Dataの使用率。

以上を踏まえて2点質問があります。
1.どのように拡張するのが良いのか
→ワークロードの拡張について調べてみたのですが、あまり適切なものが分かっておりません。

2.そもそもこのLogを最適化(改善)する方法について

上記2点についてご教示いただけますでしょうか。
よろしくお願いいたします!

「いいね!」 2

非常にユーザー数が多く、当然のワークロードという訳でなければ、
まずは2に取り組んだ方が良いと思います。
(1はワークロードのみの購入が可能ですが、こちらは経験がないので割愛させて下さい)

FetchingDataは検索です。
検索効率が悪い部分があるのではないでしょうか?
例えば、検索が遅いと判明している部分は怪しいです。
また、FetchingData(水色部分)をクリックしていくと、原因の詳細が確認できます。

最適化例
・検索が遅い部分
→検索条件を改善して、早くなるようにする(≒FetchingDataが減る)
・RepeatingGroupで表示する項目でDoSearchForを使っている
→ParentData~でデータを取れるように、書き方やDB構成を変更する
・同じ検索を何度もやっている場合
→キャッシュを使用する
※Ultimate Toolkit PluginのSimple Cache

「いいね!」 1

ご返信ありがとうございます!!

現在ユーザー数は多くありません。

最適化例としてご指摘いただいた部分としては
予約管理機能としてカレンダーを表示しているのですが(動画コンテンツ内で作成しているカレンダーがベース)そこの読み取りが効率悪くなってしまっているのではないかと推測しています。

効率の良いカレンダー表示の方法などありますでしょうか…??

>予約管理機能としてカレンダーを表示しているのですが(動画コンテンツ内で作成しているカレンダーがベース)そこの読み取りが効率悪くなってしまっているのではないかと推測しています。
その部分の検索はどの様になっていますか?
検索方法がわかるスクリーンショットと、DBのテーブル構成を教えてください。

また、ワークロードログの円グラフのFetching Dataをクリックして、
その次に表示された円グラフをクリックして、
”原因の検索名称がわかるスクリーンショット”の添付をお願いします。

「いいね!」 1

以下が検索がかかっている部分と、
その検索しているFreelance_reserveのスクショになります。




また以下が以下がFetching Dataの詳細になります!!
やはり上記の検索で多くの処理がとられているようでした…

「いいね!」 1

DoSearchForの数がすごいですね…!
ログを見る限り、他には問題はなさそうで良かったです。

簡単に変える場合、検索が3分の1になるコチラ

カレンダ動作時(イメージを掴んで頂くための参考)
image

日付ごとの枠(1番目の画像に対応)


image

◯マーク(2番めの画像)
image

✕マーク(3番めの画像)
image

さらに改善する場合
日付が1つ1つ全て入ったカレンダーマスターテーブルを作り、
そちらに予約情報をリストで格納するとかなり速度が改善します

「いいね!」 2

ご丁寧にご連携いただきありがとうございます!!:sparkles:


こちらの画像のData sourceでDo search Forの中身で日付 = Current cell’s dateを指定されていると思うのですが、実際に実装を試してみたところ、current cell’s numberしか候補に出ずcurrent cell’s dateが指定できない状況で詰まっております:sweat_drops:
DBの構成が異なるということでしょうか??

また、
「日付が1つ1つ全て入ったカレンダーマスターテーブルを作る」
というのは現状option’ setで表示している時刻をData Type化するという認識で合っていますでしょうか??

実際に実装を試してみたところ、current cell’s numberしか候補に出ずcurrent cell’s dateが指定できない状況で詰まっております

Groupが所属するRepeatingGroup dateが、Type of content:dateになっていて、
それを使います。

mwamonelockさんがRepeatingGroup numberに設定しているType of contentとData sourceはなんですか?
RepeatingGroup numberのData sourceで日付が取れれば、大丈夫です。
Group select dateで参照して実装できるはずです。

また、
「日付が1つ1つ全て入ったカレンダーマスターテーブルを作る」
というのは現状option’ setで表示している時刻をData Type化するという認識で合っていますでしょうか??

すみません、私は「動画コンテンツ内で作成しているカレンダー」は見ていないので
どのような作成方法かはわからないのですが、
「日付が1つ1つ全て入ったカレンダーマスターテーブルを作る」は
あまりスマートなやり方ではないので、今のやり方とは全く異なると思います。
(どちらかというと無理やりなやり方です)

以下のテーブルを作成して、月に1回新しい月のデータを作成する考えです。
image

「いいね!」 1

ご返信遅れてしまいすみません!!:sweat_drops:

mwamonelockさんがRepeatingGroup numberに設定しているType of contentとData sourceはなんですか?
→こちらTypeがnumberで、Data sourceがListofNumbersで「時間」を格納したものになります。
nisihataさんに作成いただいたサンプルに+αで時間を取る設計になっているのでここが異なる形になっているかもしれないです…!!


テーブルの参考例もありがとうございます!
この形だと日付、のテーブルに何月/何日/何時:何分
を入れ込むという想定であっていますでしょうか??

nisihataさんに作成いただいたサンプルに+αで時間を取る設計になっているのでここが異なる形になっているかもしれないです…!!

そうですね、そこが違いでした。
丁度NocodeCampピックアップに掲載されていたので、
参考にされたFAQとサンプルコードを見てきました。

RepeatingGroup numberが時刻に対応して、
その下のGroup select dateがTypeがdateになっているのですね。

この場合の対応方法を考えましたが、こちらで如何でしょうか
・Group select dateと○×の間に1つGroupを作成する
・このGroupをType:numberにして、以下の画像(再掲)の設定を行う
・クリックイベントやclick有無制御をこのGroupに設定する
image

「いいね!」 1

ありがとうございます!!

Group select dateと○×の間に1つGroupを作成し、このGroupをType:numberにして、以下の画像(再掲)の設定を行いました
→control groupとしました。






以上の形式でエラーの不一致は無くなったのですが、
クリックしないようにするconditionalが動作しておらず、また○と×の表示が逆になってしまいました。

ロジック的には
→予約を入れる
→countが1足される
→○と×の表示が切り替わりクリックできないようになる

の流れなのでnishihataさんにご連携いただいたconditionalで間違いないと思うのですが、
設定したGroupに差異があったりしますでしょうか??

「いいね!」 1

また○と×の表示が逆になってしまいました。

○と×のconditionalが逆ですね :sweat_smile:

クリックしないようにするconditionalが動作しておらず、

Group controlの「Add Workflow」を押したとき、クリックイベントが出ますか?

-○と×のconditionalが逆ですね :sweat_smile:
すみません!!見間違えておりました:sweat_drops:

-Group controlの「Add Workflow」を押したとき、クリックイベントが出ますか?
Add Workflowを押したところ
When[Group control is clicked]が出ました。(actionは追加しておりません)
そしてそれ以降問題なく挙動するようになりました!!
ありがとうございます!
→Conditionalの設定のみだとクリックイベントは動作しないのでしょうか??
(actionは追加しなくてもAdd WorkFlowはしておく必要がある)

「いいね!」 1

→Conditionalの設定のみだとクリックイベントは動作しないのでしょうか??
(actionは追加しなくてもAdd WorkFlowはしておく必要がある)

そうですそうです。
普通のGroupなどは、Add WorkFlowをして、初めてクリック可能になります。

うまくいってよかったです。
おめでとうございます!

「いいね!」 1

そうですそうです。
普通のGroupなどは、Add WorkFlowをして、初めてクリック可能になります。

初めて知りました…!!ありがとうございます!

うまくいってよかったです。
おめでとうございます!

ご丁寧に最後までご返信いただきありがとうございました!!
また今後ともよろしくお願いいたします:sparkles:

「いいね!」 1