私はそれが実行したいと思うように実行していないクエリがあります。ほとんどすべてのページでフッターに4人のランダムなチューターと関連データ(名前、アバター、提供するコース数)のリストを表示します。Oracleで3つの結合を使用するこのクエリを改善しました。多分 "partition over"を使用していますか?
Oracleでこのクエリの実行速度を改善するにはどうすればよいですか?私はパーティションを見ていて、パーティションを使用していました。私はmySQLのバックグラウンドを持っており、私はおそらくOracleを最大限に活用していないでしょう。
I持って、次のテーブル構造:
tutor_profiles:
id
user_id (FK users)
users:
id
username
avatar_id (FK files)
courses:
id
tutor_id (FK tutor_profiles)
description
...
files
id
file_uri
`
そして、私はこのクエリがあります初心者のための
SELECT * FROM
(SELECT inner_query.*, rownum rnum
FROM (
SELECT tutor_profiles.id AS "tutor_id"
, tutor_profiles.full_name AS "full_name"
, files.file_uri as "file_uri"
, files.id AS file_id
, tutor_profiles.user_id
, count(distinct courses.id) AS "course_count"
FROM tutor_profiles
LEFT JOIN users ON users.id = tutor_profiles.user_id
LEFT JOIN files ON files.id = users.avatar_id
LEFT JOIN courses ON tutor_profiles.id = courses.tutor_id
GROUP BY tutor_profiles.id, tutor_profiles.full_name, tutor_profiles.user_id, files.file_uri, files.id
ORDER BY dbms_random.VALUE
) inner_query
WHERE rownum <= 4)
実行するクエリは何ですか? – Luke101
質問はデータベースから4人のランダムなチューターを取得する予定です。プロフィールのアバター – Mythriel