0

我有一个包含大约的表。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获取查询结果?哪个可能更快或更好?

编辑:我无法分页。因为程序已经从数据库中搜索每条记录。首先,我需要从数据库中获取所有记录。

4

3 回答 3

0

如果您必须一次性从数据库中加载所有数据,那么我可以建议从您的查询中缓存结果集(当然优化数据库除外),因为它会减少您的结果集加载时间。但这仅在数据不经常更改的情况下才有优势。此外,如果所有数据都已经呈现到页面上,那么我认为再次查询数据库进行搜索是没有意义的。使用网格的搜索选项会更好更快。但是我必须告诉你,在页面上加载大量数据会耗尽浏览器的生命,你可能会面临诸如无响应之类的问题。

于 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 个结果,请使用TOP 命令,例如“Select Top 6”。

您选择的列/行越多,需要传输的数据就越多。移动的数据越多,查询出现的速度就越慢。

在服务器上进行过滤。如果您的数据将始终在特定列上进行过滤,请使用Index。索引将大大提高过滤性能。

高效查询的关键是过滤索引列并只返回您需要的内容。

于 2012-08-06T10:25:22.637 回答