在查询分析器中,执行一个“select count(*) from table1"table1里有两百万条左右的数据。第一次执行需要 1分钟多一点,第二次执行需要30秒左右,第三次执行又需要1分钟左右,第四次执行就需要30秒左右。就这样很有规律的,一次“一分钟左右”,一次“30秒左右”。我试了十来次都是这样。每次执行的时间都是不规律的,怎么解释呀?这个问题?

解决方案 »

  1.   

    第一次执行时,DBMS需要在内存中建立一个查询优化树,然后再根据优化树对后台的物理文件进行查询操作;
    第二次执行查询时,由于优化树已经存在,可以重用之;节省了建立查询树的时间;所以速度相对快些。
    至于之后速度又慢了可能原因是:由于某种原因DBMS认为当前查询树不是最优的;所以它会再建立一个不同的。而或者也可能是因为查询优化树已经被交换出内存。
      

  2.   

    你可以用一个SQL的I/O函数测试一下,我一下记不得是哪个函数了,不过这个函数是有的,我今天刚看过,呵呵,记忆不好啦。