摘要:
简介 在SQL Server中,我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loop Join,Merge Join,Hash Join这三种物理连接中的一种。理解这三种物理连接是理解在表连接时解决性能问题的基础,下面我来对这三种连接的原理,适用场景进行描述。嵌套循环连接(Nested Loop Join) 循环嵌套连接是最基本的连接,正如其名所示那样,需要进行循环嵌套,这种连接方式的过程可以简单的用下图展示: 图1.循环嵌套连接的第一步 图2.循环嵌套连接的第二步 由上面两个图不难看出,循环嵌套连接.. 阅读全文
摘要:
最近在做网站应用的优化那自然就涉及到缓存方面的处理,实际应用中不可能针对所有数据进行缓存,所以那些数据要优先缓存则变得非常重要.在.net提供一些缓存功能如缓存多长时间或依赖性缓存,但这种缓存方式都很有局限制,并不能达到缓存高命中率的数据.为了实现这点在开始设计缓存的时候采用了LRU算法.这种算法的主要作用是保存最近使用的数据,可以简单地使用一个双向链接结合哈希表来实现.当添加缓存或使用时候把对应的项移至链表头,通过一个计时器对链表尾进行扫描,把最后活动的数据进行清除.但这种设计似乎并不理想也很难达到缓存高命中率的数据,拿用户登陆为例实际上最后登陆的用户不一定就是非常活跃的用户,如小张是网站的 阅读全文