【发布时间】:2013-03-29 04:03:24
【问题描述】:
我正在我的 C# MVC 应用程序中针对 SQL 数据库执行以下两个查询。
查询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 + "'"
在运行执行这些查询的方法时,每个查询都会挂起,并且我的应用程序的下一页通常不会加载超过一分钟,或者会超时。当我在 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)
【问题讨论】:
-
您需要为两个表提供表结构,以便我们提供帮助。您的 C# 代码也会有所帮助。
-
@rontornambe 我已经提供了上面的结构。
-
是的,名称索引会修复它。感知到的 10 到 15 秒不包括处理所有结果集。如果您使用的是管理工作室,它只会显示/查询前 X 行。
-
请正确参数化您的查询。您的代码是可注入的。
标签: c# sql sql-server join