今天上午,解决了文章的分页,利用服务器的存储过程,将符合条件的记录总数,读出!第一次读出的时候,将结果写入Cache,然后在IIS没有重启的情况下,整个站点的人,都可以共享这个记录数! 好处: 1.减少SQLServer的读取压力! 2.利用Cache,可以最大程度的提高程序的运行效率! 带来的问题: 1.增加了代码的服杂度! 2.Cache在数据更新的时候,需要重新从数据库中读一次! 3.在传递where条件的时候,由于记录每一次都不一样,所以Cache缓存的记录,会不一致!
程序就是这个样子,用了一个新的方法,虽然可以解决一个问题!但是同样,他也会带来新的问题!在效率与正确性之间,全部都要照顾到! 我做以下解决方案: 1.在 Modal层,建立Cache对象,管理所有站点中有用到的Cache名称,避免重复!为了使效率最高,将 HashTable 对象,存入cache,这样,每一次读入的时候,不用循环一次! 2.Cache[对象]存入一个HashTable,将每一次传入的参数 作为Key,然后将得到的结果作为 value,最后将这一组数据,存入cache! 3.在第二次读入的时候,需要检查cache,如果有的话,就读入!否则,就写一条!并更新记录! 4.特别需注意的是:在增加,删除的时候,必须要对此 cache[对象].Remove().此目的是将数据库中记录和条件记录数同步! |