123
返回列表 发新帖
楼主: stephen

[精华] 在优化sql时一般遵循什么原则?

[复制链接]
论坛徽章:
0
21#
发表于 2004-9-18 14:09 | 只看该作者

Re: 一篇文摘,用一定的水平

最初由 stephen 发布
[B

二、不充份的连接条件:
---- 例:表card有7896行,在card_no上有一个非聚集索引,表account有191122行,在 account_no上有一个非聚集索引,试看在不同的表连接条件下,两个SQL的执行情况:
select sum(a.amount) from account a,
card b where a.card_no = b.card_no(20秒)
---- 将SQL改为:
select sum(a.amount) from account a,
card b where a.card_no = b.card_no and a.
account_no=b.account_no(< 1秒)
---- 分析:
---- 在第一个连接条件下,最佳查询方案是将account作外层表,card作内层表,利用card上的索引,其I/O次数可由以下公式估算为:
---- 外层表account上的22541页+(外层表account的191122行*内层表card上对应外层表第一行所要查找的3页)=595907次I/O
--- 在第二个连接条件下,最佳查询方案是将card作外层表,account作内层表,利用account上的索引,其I/O次数可由以下公式估算为:
--- 外层表card上的1944页+(外层表card的7896行*内层表account上对应外层表每一行所要查找的4页)= 33528次I/O

[/B]


從前後兩個SQL看,似乎第二個查詢結果比第一個少,因為加了一個account_no=b.account_no條件呀。
分析第二個連接條件中,怎麼定哪個是外層表哪個是內層表?
還有多少多少頁是怎麼來的?
謝謝您的實驗結晶!

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
22#
发表于 2004-12-1 20:00 | 只看该作者
hao dong xi.

使用道具 举报

回复
论坛徽章:
0
23#
发表于 2004-12-21 17:40 | 只看该作者

少量sqltuning知识,多的explain

只要做到多分析explain,慢慢就会积累很多经验的

使用道具 举报

回复
论坛徽章:
3
操作系统板块每日发贴之星
日期:2005-05-04 01:01:45行业板块每日发贴之星
日期:2005-10-19 01:02:42会员2006贡献徽章
日期:2006-04-17 13:46:34
24#
发表于 2005-7-23 07:59 | 只看该作者
Thank you very much.

使用道具 举报

回复
论坛徽章:
7
六级虎吧徽章
日期:2009-03-30 21:56:32
25#
发表于 2006-5-24 10:55 | 只看该作者

Re: Re: 一篇文摘,用一定的水平

优化这个话题好大,需要好好学。

最初由 gerard 发布
[B]
select sum(a.amount) from account a,
card b where a.card_no = b.card_no(20秒)
---- 将SQL改为:
select sum(a.amount) from account a,
card b where a.card_no = b.card_no and a.
account_no=b.account_no(< 1秒)
從前後兩個SQL看,似乎第二個查詢結果比第一個少,因為加了一個account_no=b.account_no條件呀。
分析第二個連接條件中,怎麼定哪個是外層表哪個是內層表?
還有多少多少頁是怎麼來的?
謝謝您的實驗結晶! [/B]

我也觉得这一段看的很不顺眼,查询条件不对等,而一般只在查询条件对等的情况下,掉换在SQL中的不同表的出现顺序才效果可比。
不过仔细看了下,感觉作者的意思是要表达“检索条件要充分”。不知是否理解到位了?

使用道具 举报

回复
论坛徽章:
2
2014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02
26#
发表于 2006-5-25 21:19 | 只看该作者
学习了,正在找这方面资料,谢谢!

使用道具 举报

回复
论坛徽章:
55
红孩儿
日期:2009-04-11 12:56:14嫦娥
日期:2009-05-13 09:18:36兰博基尼
日期:2013-08-05 11:34:06阿斯顿马丁
日期:2013-12-05 17:02:082014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11
27#
发表于 2006-5-27 14:04 | 只看该作者
学习

使用道具 举报

回复
论坛徽章:
4
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442010新春纪念徽章
日期:2010-03-01 11:19:502011新春纪念徽章
日期:2011-02-18 11:43:362012新春纪念徽章
日期:2012-01-04 11:53:29
28#
发表于 2007-7-3 18:11 | 只看该作者
学习中进步

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表