簡體   English   中英

從數據表中獲取記錄的最佳方法是什么?

[英]What is the best way to get records from Datatable?

我有一張桌子,包含大約。 150000條記錄。 可能會改變。我的意思是更多..我不知道。 這是我使用.net framework 3.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)

好吧,我的程序將對記錄應用一些過濾器。

我有兩個問題

1-

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

在這里,程序等待一會兒。 如果記錄增加,它將等待很多。 我該怎么用? 我以為可以使用線程,但是我不確定。

2-每個過濾查詢數據庫。 過濾器僅表示條件,例如

其中Name = ...和Surname ...等。

這是查詢數據庫的好方法還是我必須從gridview獲取查詢結果? 哪個更快或更更好?

編輯:我不能分頁。 因為程序將已經從數據庫中搜索每個記錄。 首先,我需要從數據庫獲取所有記錄。

如果過濾器很簡單where Name=..... and Surname... etc.

我建議您選擇選項2,但要在SQL查詢中進行過濾,而您必須Select * from TAPU_GEMLIK

如果您必須一次從數據庫中加載所有數據,那么我可以建議您從查詢中緩存結果集(除了優化課程數據庫外),因為這會減少結果集的加載時間。 但這僅在數據不經常更改的情況下才是有利的。 此外,如果所有數據都已經呈現到頁面,那么我認為再次查詢數據庫以進行搜索是沒有意義的。 使用grid的搜索選項會更好,更快。 但是,我必須告訴您,在頁面上加載大量數據會縮短瀏覽器的壽命,並且您可能會遇到諸如無響應之類的問題。

您需要了解有關如何使用SQL查詢數據的更多信息。

例如,您是否需要數據庫中的所有列? 還是只需要幾個。 如果只需要6個結果,則使用TOP命令,例如“ Select Top 6”。

您選擇更多的列/行,則需要傳輸更多的數據。 移動的數據越多,查詢的顯示速度就越慢。

在服務器上進行過濾。 如果您的數據將始終在特定列上進行過濾,請使用Index 索引將大大提高過濾性能。

有效查詢的關鍵是對索引列進行過濾,僅返回所需的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM