查询时遇到的一个奇怪的问题 在查询分析器中,执行一个“select count(*) from table1"table1里有两百万条左右的数据。第一次执行需要 1分钟多一点,第二次执行需要30秒左右,第三次执行又需要1分钟左右,第四次执行就需要30秒左右。就这样很有规律的,一次“一分钟左右”,一次“30秒左右”。我试了十来次都是这样。每次执行的时间都是不规律的,怎么解释呀?这个问题? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第一次执行时,DBMS需要在内存中建立一个查询优化树,然后再根据优化树对后台的物理文件进行查询操作;第二次执行查询时,由于优化树已经存在,可以重用之;节省了建立查询树的时间;所以速度相对快些。至于之后速度又慢了可能原因是:由于某种原因DBMS认为当前查询树不是最优的;所以它会再建立一个不同的。而或者也可能是因为查询优化树已经被交换出内存。 你可以用一个SQL的I/O函数测试一下,我一下记不得是哪个函数了,不过这个函数是有的,我今天刚看过,呵呵,记忆不好啦。 轉Datetime類型時報錯.具體如下..請各位達人幫忙...HELP 存储过程怎么解决行逐行计算和筛选? 关于MSDE的使用问题 如何用exec调用.sql文件 加上循环执行效率的问题 SQL新建表的问题. 统计两个表的数据 采用windows认证时,怎么连上SQL Server? 如何在sql server 2000 写存储过程,那里有例子或帮助? 有关触发器的理解:请大家帮忙!!!!! sqlsever 中的登陆用户,数据库用户和角色的问题! 几个问题求救!!!!!!!!!!!!!!!!!!!!!!!!!
第二次执行查询时,由于优化树已经存在,可以重用之;节省了建立查询树的时间;所以速度相对快些。
至于之后速度又慢了可能原因是:由于某种原因DBMS认为当前查询树不是最优的;所以它会再建立一个不同的。而或者也可能是因为查询优化树已经被交换出内存。