我有一张桌子,其中包含约。 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获取查询结果?哪个可能更快或更好?
编辑:我无法分页。因为程序已经从数据库中搜索每条记录。首先,我需要从db获取所有记录。
答案 0 :(得分:0)
如果过滤器很简单where Name=..... and Surname... etc.
我建议你去选项2但是在sql查询中进行过滤,你有Select * from TAPU_GEMLIK
答案 1 :(得分:0)
如果你必须从数据库中一次性加载所有数据,那么我可以建议你查询缓存结果集(除了优化DB ofcourse),因为它会减少你的结果集加载时间。但是,如果数据不经常变化,这只是有利的。此外,如果所有数据都已呈现给页面,那么我认为再次查询数据库进行搜索是没有意义的。使用网格搜索选项会更好更快。但是我必须告诉你,在页面上加载大量数据会挤压浏览器的生命,你可能会面临诸如反应迟钝等问题。
答案 2 :(得分:0)
您需要了解有关如何使用SQL查询数据的更多信息。
例如,您是否需要数据库中的所有列?或者你只需要一对。如果您只需要6个结果,请使用TOP command,例如“选择前6名。”
您选择的列/行越多,需要传输的数据就越多。移动的数据越多,查询就越慢。
在服务器上进行过滤。如果您的数据将始终在特定列上进行过滤,请使用Index。索引将大大提高过滤性能。
有效查询的关键是过滤索引列,只返回您需要的内容。