求助一个数据库性能问题

东方一蛇 2009-06-19 11:59:51
两种做法,大家觉得哪个效率高:
1,select top 100 a,b,c,d,f,g,h,i,j,k,l,m from table order by a


2,select top 100 a from table order by a
{
select a,b,c,d,e ,f,g,h... from table where a=...

}

...全文
38 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
menggang9801 2009-06-21
  • 打赏
  • 举报
回复
第一种效率高,他只要进行一个表的full scan/index

第二种需要进行表的join,

通过查看执行计划应该看得出的
dabingyunhao 2009-06-20
  • 打赏
  • 举报
回复
第一种做法就是常规的筛选吧
第二种where句后面应该是做的连接
这两句的效率比较真的很难讲~~~
Jamin_Liu 2009-06-20
  • 打赏
  • 举报
回复
第一種效率高
东方一蛇 2009-06-19
  • 打赏
  • 举报
回复
再讲清楚一点吧
实现的功能很简单,就是取出数据库中20条记录,显示在网页上

第一个方法,就是我们最常规的做法,一次取出20条记录的所有列;
然后再循环显示在网页;
第二个方法,就是一次取出20条记录的ID列,然后,再逐一根据ID取得数据库中该ID的所有列显示在网页.

东方一蛇 2009-06-19
  • 打赏
  • 举报
回复
再讲清楚一点吧
实现的功能很简单,就是取出数据库中20条记录,显示在网页上

第一个方法,就是我们最常规的做法,一次取出20条记录的所有列;
然后再循环显示在网页;
第二个方法,就是一次取出20条记录的ID列,然后,再逐一根据ID取得数据库中该ID的所有列显示在网页.

fwacky 2009-06-19
  • 打赏
  • 举报
回复

1,select top 100 a,b,c,d,f,g,h,i,j,k,l,m from table order by a
-晴天 2009-06-19
  • 打赏
  • 举报
回复
此两句的效率无法比较,因为功能不同.
在第一句只是排出前100个.
在第二句中加了where,它的执行效率要看 where 后面写着什么.

如果两个都加 where,则第一个好一些.
SQL77 2009-06-19
  • 打赏
  • 举报
回复
第一应该好点吧

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧