做了一个录入工具,可能同时有50个人操作某一个表,进行频繁的读取操作....我现在的办法是单机版的..代码的思路就是,频繁的SELECT -*- FORM..table where........
不知道这么操作在局域网内,对服务器有影响没有..
方案2.第一次读取数据库就把数据做为数组一次写进内存,每次操作都是在本机进行,当有数据更新的时候,手动刷新这个数组...视乎后面这个效率超高,但是需要改动大量代码..请问前面这个办法可行吗?当数据量上万后影响大不.

解决方案 »

  1.   


    如果数据是静态数据比较多(增/删/改不多,就是查询多),也就是,数据的实时交互不是要求不是很高的话,建议用方案2如有实时交互要求,只能从提高查询性能方面想办法,把经常需要用到的查询建为视图,按查询的关键字加索引,如对数据实时精度不是很高,允许脏读,可以提高查询性能。
    select a,b,c from table with(nolock) where ....设置事务隔离级别:允许脏读
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
      

  2.   

    查联机丛书,关键字:SET TRANSACTION ISOLATION LEVEL
      

  3.   

    其实SQL的查询优化器在大部分时间就会自动优化查询 所以只要数据量不是太大的话,只需要通过加索引来提高查询效率就可以了
      

  4.   

    50个人的同时查询,对服务器应该不会有压力,
    而且需要的数据所在数据页在内存的话,sql server也会从内存读取的把数据放入数组存在客户机内存里,对于数据的一致性完整性操作应该比较麻烦