私はいくつかのクエリの最適化をしようとしています。 SQLクエリをリレーショナル代数に変換して最適化します。データベースリレーショナル代数最適化
私のDBテーブルスキーマ以下の通りです:
ランナーやヒルズの多くの列があるかもしれないHills(MId, Mname, Long, Lat, Height, Rating,...)
Runners(HId, HName, Age, Skill,...)
Runs(MId, CId, Date, Duration)
。
私のSQLクエリは次のとおりです。
SELECT DISTINCT Runners.HName, Runners.Age
FROM Hills, Runners, Runs
WHERE Runners.HId = Runs.HId AND Runs.MID = Hills.MId AND Height > 1200
だから私は実行して起動することもできます。このような
π Name, Age(σ Height > 1200 (Hills × Runners × Runs))
か何かをして、参加するの良い選択でそれを最適化し、しかし、私はないんだけど
どのプラットフォームで最適化しますか? SQLを使用して最適化するのはなぜですか?最終目的は何ですか? – Randy
このような最適化では、正確に何を達成する予定ですか?通常、SQL問合せは、問合せ計画を使用して正しい索引を定義する速度に最適化されています。関係代数最適化の理論は何ですか? – thomaspaulb
これは、すべてのRDBMSがバックでやっていることだからです。物理的な最適化はそれの最後の部分にすぎません。関係モデルが非常に「緩い」方法で動作するため、多くのクエリはさまざまな方法で記述することができ、異なる関係演算子を適用する順序は複雑さの大きな違いを意味します。つまり最初に選択したものと最初に結合するものなど –