ii.如果查询包括无主键的列,你可以使用dataview为数据的多重查询改善性能。当你在dataview中使用排序时,查询的同时就会创建一个索引。dataview使用find和findrows方法查询datatable中的数据;
iv.假如你不需要表的排序视图,你也可以利用dataview为datatable创建一个索引查询。注意的是这仅仅在你执行多重查询时才有优势,如果你只是执行一个简单查询,使用此方法将会降低你的查询效率。
k.dataview的结构
前面也讲过,在给datatable创建dataview和sort、rowfilter或者rowstatefilter属性发生更改的同时潜在的也给datatable创建了索引。创建dataview对象时,如果sort、rowfilter和rowstatefilter属性也同时指定,那么索引将只创建一次;如果创建一个空的dataview,那么索引至少被创建两次。
l.页面调度
ado.net使你可以很清楚地控制从你的数据库返回什么样的数据和有多少数据存储到一个dataset。以下没有单一的介绍调度一个查询结果,但是当你设计你的应用程序时应该考虑到以下情况:
i.避免在使用dataadapter.fill时,在startrecord和maxrecords值上溢出。
ii.解决这类问题的办法是使用where语句、order by语句和top断言。
iii.还有一种解决办法是使用top断言和嵌套的select声明。比如如下代码:
select top 10 * from
(select top 30 * from customers order by id asc) as table1 order by id desc
iv.如果你的日期不是经常改变,你可以使用dataset的存储功能改善执行性能,比如你可以存储相当10页的数据到你的dataset,然后当用户访问超过在存储区的firstpage和lastpage时才查询数据库以获得新的数据。
m.有计划地填充dataset