0

我想执行以下查询并将其放在我的 asp.net 应用程序中的 gridview 上

select *
from INDICATORS, places, places_sales
where places_sales.id = places.id
and 
INDICATORS.line  in (select line from lines)

行表有 28000 条记录和 INDICATORS 18000 条

此查询在 oracle sql developer 中执行 6 秒,但在我的 asp.net 应用程序中(使用 oracle dataacess 作为连接器)大约需要 20 分钟

有没有办法优化我的查询?

4

3 回答 3

1

您可以做几件事来加快速度。

首先,places 或 places_sales 与 INDICATORS 之间是否存在连接?

如果有,你应该添加它,你可能得到一个笛卡尔。

现在,对于优化部分,请尝试以下操作:

SELECT *
  FROM indicators, places, places_sales
 WHERE places_sales.id = places.id
       AND EXISTS
               (SELECT ''
                  FROM lines l
                 WHERE l.line = indicators.line)
于 2012-07-17T21:44:24.603 回答
0

我的建议是让您将 GridView 与分页一起使用

请参阅链接以了解有关 GridView 分页的更多信息http://msdn.microsoft.com/en-us/library/5aw1xfh3.aspx

一个很好的例子可以在这里找到http://www.dotnetcurry.com/ShowArticle.aspx?ID=339

于 2012-07-17T21:39:22.713 回答
0

我建议为表放置索引并创建索引,以便查询更加流畅。
使用类型CLUSTERED 看起来这

我真的是一个超过 60000 行的表,并且索引对其进行排序

于 2012-07-17T21:48:28.777 回答