在asp.net中,或silverlight中,如果一个系统支持多个独立数据库,每个数据库可以由多个用户在系统中操作, 同时查询出的数据要求在服务端分页,而不是在数据库里分页,就算是同一个报表,也会存在查询条件和时间范围不一样,所查出来的数据就会不一样,那么如何存放不同数据库,不同用户,不同查询条件下查出来的数据呢
这个我觉得在B/S中,可能还是得服务器端缓存吧
因为用户操作查出来后,那么分页显示是,就不用再从数据库里去读取了
包括用户双击报表头排序
也就是用户来操作排序时,也不用从数据库中读取
这个处理的效率关键在于不用重新从数据库中读取
报表一般来讲列比较多,用户可能在不停的做排序操作
如果都从数据库读取,效率可想而知
为何不放在客户端处理?
必须放到服务器端处理?
客户量大你可以用存储过程。
数据量大可以一次性取回,用JS在客户端实现无刷新的分页排序。
用户多了,数据堆积在数据库,服务器负担也不轻。。
必要时,用SQL多查询几次,也不会损失太多性能吧。
实际上我这里必须用假分页,需求如此,关键是怎么缓存这数据,但客户端关闭时,可以清理这个缓存