小弟奉命优化一个实验室自制的DBMS系统, 发现原系统当要取数据时, 都是直接到磁盘中I/O, 速度很慢. 我想问一下, 在SQL Server中, 当执行一条 select * from Ta1, Ta2 语句时, 为什么速度这么快? 在执行这条语句之前, Ta1, Ta2表中的数据是怎么管理的?另外, 大家对我现在的情况有什么好的建议吗?

解决方案 »

  1.   

    sql server 的数据也是从硬盘读取的
      

  2.   

    传入语句--->转换成Hash值---->用hash值检查缓存中是否有----有,不说了,没有--->运行语句----->缓存结果--->设置时间戳只是大概,当然事实没有这样简单的。
      

  3.   

    检查缓存中是否有----有,不说了,没有.......
    ------
    在我测试时, 只运行了一次, 肯定不在缓存中, 难道这时就是一楼说的, 直接从磁盘读取? 那为什么SQL Server2000的速度比我的要快大约100倍呢, 这里面应该有些玄机才对啊.