内存要比磁盘读取速度快很多。
数据在sqlserver上执行,就是在磁盘上读取,比相应的在内存中读取速度当然慢许多,不过要在内存中执行,不得不要将数据集存到内存中,造成了I/O开销,二者加起来,内存读取速度也将慢下来。内存与磁盘如何平衡?一个是高读取速度,但I/O开销大,一个是低读取速度,但I/O开销小。
故当:可取到的数据集较小时,可放到内存中,利用内存的高读取速度进行执行,以提高整体运行速度。
当在数据库上运行速度慢时,可考虑将数据集存放到内存中读取,试下速度。取速度最小的。
典型情况:对某一大表(30个字段)的某一列按多个条件进行count统计,在sql server运行时,开销很大,可考虑将这一列取出放到内存中再进行据条件的count操作。
注:big表有30个字段,1741笔资料,smail有1个字段,也是1741笔资料
select count(1) from big? select count(1) from smaill?
即使两者行数相同,执行速度也会差很多,因为big表要扫描整个表,而这个表有30个字段,每个字段都要扫描,