0

次のクエリを実行して、asp.net アプリのグリッドビューに配置したい

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

行テーブルには 28000 レコードと 18000 のような指標があります

このクエリは oracle sql 開発者では 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

クエリがより流動的になるように、テーブルに インデックスを配置して作成することをお勧めします。
タイプCLUSTEREDを使用してい ますこれ

は、 実際には60000行を超えるテーブルのようなもので、インデックスはそれをソートします

于 2012-07-17T21:48:28.777 に答える
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 に答える