日期:2014-05-18  浏览次数:20528 次

百分请教sql 句子select top的执行效率问题.
数据库中的一百万条记录,在sql   查询分析器中直接执行select   top   999992   *   from   talbe时,用了几十秒.在ASP中执行了同样的句子,还进行了一些别的操作,为什么却在10秒内完成操作了?

难道在ASP中时,效率提高了吗?

------解决方案--------------------
数据库中的一百万条记录,在sql 查询分析器中直接执行select top 999992 * from talbe时,用了几十秒.在ASP中执行了同样的句子,还进行了一些别的操作,为什么却在10秒内完成操作了?

我也认为这是不可能的.

再说数据库中有一百万条记录,select top 999992 有何意义?
------解决方案--------------------
要考虑对输出结果的处理

查询分析器要读出所有的数据并显示出来
也许你的asp只是打开记录集, 然后分页显示数据, 这个不一定要把所有数据都拿出来的

这样两者需要的时间肯定不同.
------解决方案--------------------
数据库中的一百万条记录,在sql 查询分析器中直接执行select top 999992 * from talbe时,用了几十秒.在ASP中执行了同样的句子,还进行了一些别的操作,为什么却在10秒内完成操作了?

我也认为这是不可能的.
如果資料量這麼大,加上必要的條件與建立合適的索引對查詢效能是有幫助的。
------解决方案--------------------
那是因为查询分析器获得数据后需要处理并以某种格式,显示出来,这部分时间被统计在查询时间内了,实际上服务器返回数据没有花这么多时间