すべてのカテゴリでこれを有効にすると、当フォーラムにとっては相当なコストになると思います:sweat_smile:
コストの見積もり方法についてアドバイスはいただけますか?文字数に基づいていると思うのですが、プラグインのバックエンドでの動作はわかりません。言語検出のコストを削減するために、各投稿の最初の X 文字のみを取得しているのでしょうか?
フォーラムのコスト見積もり方法を以下に説明します。すべてのクエリは Data Explorer 向けです。
投稿あたりの平均文字数の見積もり
最後に確認した際、プラグインは調理済みテキストを翻訳サービスに送信していました。
SELECT AVG(LENGTH(p.cooked))
FROM posts AS p
JOIN topics AS t ON p.topic_id = t.id
WHERE t.archetype != 'private_message'
ユーザー訪問あたりに読まれた投稿数の見積もり
比較的最近の推定値を得るため、過去 30 日間のデータを参照しました。
-- [params]
-- int :from_days_ago = 0
-- int :duration_days = 30
WITH t AS (
SELECT CURRENT_TIMESTAMP - ((:from_days_ago + :duration_days) * (INTERVAL '1 days')) AS START,
CURRENT_TIMESTAMP - (:from_days_ago * (INTERVAL '1 days')) AS END
)
SELECT AVG(posts_read)
FROM user_visits
JOIN t ON visited_at > t.START AND visited_at < t.END
過去 30 日間のユーザー訪問数
-- [params]
-- int :from_days_ago = 0
-- int :duration_days = 30
WITH t AS (
SELECT CURRENT_TIMESTAMP - ((:from_days_ago + :duration_days) * (INTERVAL '1 days')) AS START,
CURRENT_TIMESTAMP - (:from_days_ago * (INTERVAL '1 days')) AS END
)
SELECT COUNT(1)
FROM user_visits
JOIN t ON visited_at > t.START AND visited_at < t.END
SELECT LENGTH(COALESCE(string_agg(posts.cooked, ''),''))
FROM posts
JOIN topics on posts.topic_id = topics.id
WHERE topics.archetype <> 'private_message'