0

私は約を含むテーブルを持っています。150000レコード。それは変化かもしれません..私はもっと意味します..私は知りません。そしてそれはアクセスデータベースです(その義務です)私は.netFramework3.0を使用しています

vb.netまたはc#は関係ありません。

そのコードを使用しました

    con = New OleDbConnection("provider=microsoft.jet.oledb.4.0; data source=db.mdb")
    cmd = New OleDbCommand("Select * from TAPU_GEMLIK", con)
    da = New OleDbDataAdapter(cmd)

    ds = New DataSet()
    da.Fill(ds)
    DgKayitlar.DataSource = ds.Tables(0)

さて、私のプログラムはレコードにいくつかのフィルターを適用します。

2つの質問があります

1-

    da.Fill(ds)
    DgKayitlar.DataSource = ds.Tables(0)

ここでは、プログラムはしばらく待機します。レコードが増えると、かなり待ちます。何に使えますか?糸が使えると思ったのですが、よくわかりません。

2-各フィルターはデータベースを照会します。フィルタとは、次のような条件だけを意味します

ここで、Name=.....およびSurname...など。

データベースをクエリするのに良い方法ですか、それともグリッドビューからクエリの結果を取得する必要がありますか?どちらが速いか良いですか?

編集:ページングできません。プログラムはすでにデータベースから各レコードを検索しているためです。まず、dbからすべてのレコードを取得する必要があります。

4

3 に答える 3

0

データベースから一度にすべてのデータをロードする必要がある場合は、結果セットのロード時間を短縮するため、クエリから結果セットをキャッシュすることをお勧めします(もちろん、DBの最適化は別として)。ただし、これは、データがあまり頻繁に変更されない場合にのみ有利です。さらに、すべてのデータがすでにページにレンダリングされている場合は、データベースに再度クエリを実行して検索するのは意味がないと思います。グリッドの検索オプションを使用すると、より適切かつ高速になります。ただし、ページに大量のデータをロードすると、ブラウザの寿命が短くなり、応答がなくなるなどの問題が発生する可能性があることを伝えなければなりません。

于 2012-08-05T15:57:25.790 に答える
0

フィルターが単純な場合 where Name=..... and Surname... etc.

オプション2を選択することをお勧めしますが、SQLクエリでフィルタリングを行いますSelect * from TAPU_GEMLIK

于 2012-08-05T15:35:29.793 に答える
0

SQL を使用してデータを照会する方法についてさらに学習する必要があります。

たとえば、データベースのすべての列が必要ですか? それとも、カップルだけが必要ですか。6 つの結果のみが必要な場合は、"Select Top 6" などのTOP コマンドを使用します。

より多くの列/行を選択すると、より多くのデータを転送する必要があります。移動するデータが多いほど、クエリの表示が遅くなります。

サーバー上でフィルタリングを行います。データが常に特定の列でフィルタリングされる場合は、Indexを使用します。インデックスはフィルタリングのパフォーマンスを大幅に向上させます。

効率的なクエリの鍵は、インデックス付きの列をフィルター処理して、必要なものだけを返すことです。

于 2012-08-06T10:25:22.637 に答える