羽毛球

生活在别处

导航

<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

统计

留言簿(29)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜

优化sql语句

1 索引, 创建合适的索引最有效的优化手段。很多资料讲这个。

2 尽量返回少量结果集。
  譬如,有一个表存放着其他应用填充的数据,你需要从这个表中获取所有的数据并进行处理。
  现实情况是,某个时刻这个表可能积累了500,000级别以上的数据。如果程序中直接使用 select * from tb_TempData返回所有结果集合,就会导致严重后果。想想,返回这些数据都需要相当多的时间或超时,以及磁盘IO或cache等恶劣影响。
  合适的做法是返回top 1000或者依据ID(如果有)字段返回一定范围的记录。处理完这批后,再处理下1000条。
 
3 尽量在表join之前将记录集限制为最小
  譬如sql:  select a.field1, a.field2, b.name from table1 as a inner join table2 as b on a.ID = b.FID where a.update_time>'2006-3-3'
  优化的前提:大多数情况下,符合update_time条件的记录集很小。
  table1和table2都是大表,尽量将此sql改为:
  select a.field1, a.field2, b.name from (select field1, field2) from table1 where update_time>'2006-3-3') as a
   inner join table2 as b on a.ID = b.FID
  当sql语句比较复杂,where条件较多时,sql server优化不能保证正确选择返回最小集合的条件。所以,我们需在设计sql语句时指明这点。

posted on 2006-03-31 22:23 Michael 阅读(3686) 评论(3)  编辑 收藏

评论

# re: 优化sql语句 2006-04-01 11:58 肉丝

路过。。。。

# re: 优化sql语句 2008-05-27 12:06 飞凌

好东西,谢谢分享 

# re: 优化sql语句 2009-05-06 12:01 虚拟主机

一家提供域名注册的公司,提供虚拟主机,为企业上网提供最佳虚拟主机解决方案,另外还有服务器租用,服务器托管等相关业务。

标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]