在三层架构开发中,数据层定义了getData的方法和setData的方法,参数分别是DataSet(有很多张表)那么当逻辑层需要进getData或setData时的SQL语句是select * 等时或数据量大时(比如上千万),那么DataSet都被放在服务器的内存中吗?
这样岂不是很容易搞跨服务器?而且我们还需要对DataSet进行修改,再更新呢.最开始时我认为DataSet是一种断开式的数据访问技术,是有它的好处.但当量大时我们该如何写呢?请教大家!另外,修改完的DataSet它的更新到数据库的原理是什么?它是每行每列的对应数据库的去更新吗?
假如select *一大堆数据后,只更新其中一条记录的一个字段值,岂不是很浪费?(前提是逻辑层是需要select *)

解决方案 »

  1.   

    那么当逻辑层需要进getData或setData时的SQL语句是select   *   等时或数据量大时(比如上千万?
    你需要同时把这么多数据都取出来吗?
    这里肯定涉及到分页撒,只取出你想要的,并不是要把所有的都取出来
      

  2.   

    你不分页吗?分页在取dataset之前完成就OK了例如用存储过程,返回当前页仅有的一点记录
      

  3.   

    还有个疑问,当并发多用户使用时,服务器的内存是否存在多个DataSet?
      

  4.   

    你要先搞清楚什么才叫作三层才好呢,同是菜鸟http://www.51aspx.com/Tags/2
      

  5.   

    用存储过程就好了,返回很少的东东去填充DATATABLE,
      

  6.   

    1 写分页查询SQL
    2 SqlDataAdapter.Fill里有指定填充多少数据的一个方法,SQL语句可以写得简单