明らかに正しくないクエリの 1 つで大規模なデータベースに問題があり、データベース側が苦手なので、このクエリを最適化するために何ができるかわかりません。以下は私のテーブル構造であり、フェッチする必要があるデータの詳細を示しています。
ユーザーテーブル
UserID UserName UserRole ParentID
1 ABC1 2 0
2 ABC2 2 0
3 ABC3 2 1
4 ABC4 2 1
5 ABC5 2 2
調査表の構造
SurveryID SurveyTitle UserID
1 S1 3
2 S2 3
3 S3 4
4 S4 4
3 S3 4
4 S4 5
3 S3 3
4 S4 5
3 S3 3
4 S4 4
親 ID を持たないユーザーはスーパーバイザーであり、親 ID を持つユーザーはその親スーパーバイザーの下の営業担当者です。
だから、スーパーバイザーとその営業担当者が行ったOS調査の数のリストを取得したいと思います。以下のようなもの。
SuperVisorName SurveyCount
ABC1 10
ABC3 4
ABC4 6
ABC2 18
ABC5 18
現在のシステムでは、最初にすべてのスーパーバイザーを取得し、次にすべてのスーパーバイザーを調べて、調査で営業担当者を取得します。
これにより、クエリが非常に遅くなり、タイムアウト エラーが発生します。現在、調査対象のレコードが 40,000 件あり、100,000 件以上増加することを望んでいます。
私はそれについてほとんど検索しませんでしたが、ユニオンがこれに役立つことがわかりましたが、私のシナリオに適用する方法がわかりませんか? これは、上記の結果を達成するための単一のクエリであると思いますか?
ご不明な点がございましたら、お知らせください。それらを明確にします。
これについてあなたの助けに感謝します。御時間ありがとうございます。