C# MVC アプリケーション内から SQL データベースに対して次の 2 つのクエリを実行しています。
クエリ1
SELECT tableone.id, name, time, type, grade, product, element, value
FROM dbo.tableone INNER JOIN dbo.tabletwo ON dbo.tableone.id = dbo.tabletwo.id
Where name = '" + Name + "' Order By tableone.id Asc, element
クエリ2
Select DISTINCT element FROM dbo.tableone
INNER JOIN dbo.tabletwo ON dbo.tableone.id = dbo.tabletwo.id
Where name = '" + Name + "'"
これらのクエリを実行するメソッドを実行すると、各クエリがハングし、多くの場合、アプリケーションの次のページが 1 分以上読み込まれないか、いずれかでタイムアウトになります。SQL Server で同じクエリを実行すると、それぞれの実行に 10 ~ 15 秒かかりますが、これはまだ長すぎます。
どうすればそれらをスピードアップできますか? 私はSQLインデックスを作成したことがなく、これらのそれぞれに対してそれを作成する方法、またはそれが正しいパスであるかどうかわかりません。
現在、Tableone には 20808805 行と 3 列があり、tabletwo には 597707 行と 6 列があります。
テーブルワン
id(int, not null)
element(char(9), not null)
value(real, null)
テーブルツー
id(int, not null)
name(char(7), null)
time(datetime, null)
type(char(5), null)
grade(char(4), null)
product(char(14), null)