查看: 3332|回复: 10

[讨论] 性能问题,看下这个语句能不能优化

[复制链接]
论坛徽章:
0
发表于 2010-5-10 11:02 | 显示全部楼层 |阅读模式
这样一条SQL语句
select *

  from (select c.ID           as ID15_,
               c.DETAIL       as DETAIL15_,
               c.TITLE        as TITLE15_
          from COM c, MA m
         where c.MARKETID = m.ID
           and m.AREAID = 1
           and c.ISDELMARK = 0
           and c.MARK = 2
         order by c.GETDATE desc)
         
where rownum <= 6

COM表有27万的记录,marketid列做了索引。MA表有300记录,没做索引
查询时间在pl/sql developer中执行是平均0.219秒
我对性能方面不是很了解,请问这个速度在ORACLE上是可以满意的还是比较差的?
还可以调整得更好一些吗




在一个远程数据库上有137万的表中查询,平均1.7秒,(这个可能是算入了网络传输的时间)
招聘 : Java研发
认证徽章
论坛徽章:
71
马上加薪
日期:2014-02-19 11:55:14蜘蛛蛋
日期:2012-12-26 18:16:01茶鸡蛋
日期:2012-11-16 08:12:48ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07奥运会纪念徽章:网球
日期:2012-08-23 14:58:08奥运会纪念徽章:沙滩排球
日期:2012-07-19 17:28:14版主2段
日期:2012-07-07 02:21:02咸鸭蛋
日期:2012-03-23 18:17:482012新春纪念徽章
日期:2012-02-13 15:13:512012新春纪念徽章
日期:2012-02-13 15:13:51
发表于 2010-5-10 11:07 | 显示全部楼层
只关注时间意义不大
在sqlplus里执行,然后看执行计划以及执行的统计信息

使用道具 举报

回复
论坛徽章:
37
2008新春纪念徽章
日期:2008-02-13 12:43:032010广州亚运会纪念徽章:击剑
日期:2011-01-22 20:59:112011新春纪念徽章
日期:2011-02-18 11:43:33茶鸡蛋
日期:2011-08-05 15:44:24ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152012新春纪念徽章
日期:2012-01-04 11:51:22玉石琵琶
日期:2012-02-21 15:04:38ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24劳斯莱斯
日期:2013-09-12 15:56:37
发表于 2010-5-10 11:09 | 显示全部楼层
是否满意要问你们使用这个系统的人以及是否满足业务的需要,别人怎么回答你啊?

使用道具 举报

回复
论坛徽章:
120
现任管理团队成员
日期:2011-05-07 01:45:08乌索普
日期:2019-02-14 23:54:04
发表于 2010-5-10 12:15 | 显示全部楼层
执行计划 数据库版本

使用道具 举报

回复
论坛徽章:
4
2011新春纪念徽章
日期:2011-02-18 11:43:33ITPUB十周年纪念徽章
日期:2011-11-01 16:24:042012新春纪念徽章
日期:2012-01-04 11:53:542013年新春福章
日期:2013-02-25 14:51:24
发表于 2010-5-10 12:55 | 显示全部楼层
set autotrace on exp;  
看下执行计划

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2010-5-10 14:22 | 显示全部楼层
版本是10g,执行计划




原帖由 ysping 于 2010-5-10 11:09 发表
是否满意要问你们使用这个系统的人以及是否满足业务的需要,别人怎么回答你啊?


我不是问用户对这个满意不满意,是说数据库这个性能有没有发挥出来

比如说,对这样一个查询,一个经验老道的DBA能让它最快多少时间查出来

使用道具 举报

回复
论坛徽章:
120
现任管理团队成员
日期:2011-05-07 01:45:08乌索普
日期:2019-02-14 23:54:04
发表于 2010-5-10 15:00 | 显示全部楼层
原帖由 qinglangee 于 2010-5-10 14:22 发表
版本是10g,执行计划






我不是问用户对这个满意不满意,是说数据库这个性能有没有发挥出来

比如说,对这样一个查询,一个经验老道的DBA能让它最快多少时间查出来

  在老道的DBA也不能说出他最快多长时间~ 这个机遇你的硬件性能~

你给的执行计划和SQL是匹配的么?  SQL中两个表连接,执行计划中只有一个表...

使用道具 举报

回复
论坛徽章:
37
2008新春纪念徽章
日期:2008-02-13 12:43:032010广州亚运会纪念徽章:击剑
日期:2011-01-22 20:59:112011新春纪念徽章
日期:2011-02-18 11:43:33茶鸡蛋
日期:2011-08-05 15:44:24ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152012新春纪念徽章
日期:2012-01-04 11:51:22玉石琵琶
日期:2012-02-21 15:04:38ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24劳斯莱斯
日期:2013-09-12 15:56:37
发表于 2010-5-10 15:13 | 显示全部楼层
原帖由 zergduan 于 2010-5-10 15:00 发表

  在老道的DBA也不能说出他最快多长时间~ 这个机遇你的硬件性能~

你给的执行计划和SQL是匹配的么?  SQL中两个表连接,执行计划中只有一个表...


就是啊!具体多快和系统环境关系很大啊!

使用道具 举报

回复
论坛徽章:
1088
金色在线徽章
日期:2007-04-25 04:02:08金色在线徽章
日期:2007-06-29 04:02:43金色在线徽章
日期:2007-03-11 04:02:02在线时间
日期:2007-04-11 04:01:02在线时间
日期:2007-04-12 04:01:02在线时间
日期:2007-03-07 04:01:022008版在线时间
日期:2010-05-01 00:01:152008版在线时间
日期:2011-05-01 00:01:342008版在线时间
日期:2008-06-03 11:59:43ITPUB年度最佳技术原创精华奖
日期:2013-03-22 13:18:30
发表于 2010-5-10 15:34 | 显示全部楼层
你可以看看单行逻辑读是否在范围内,可以参考下oracle性能诊断那本书

另外性能是比较出来的,不是算出来的,算法是oracle内部未公开的,和环境有很大关系。你的sql最多加加hint,比较各种执行计划看看

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2010-5-10 16:39 | 显示全部楼层
也就是说这样的问题是没答案的啦

那以前论坛有没有这样讨论过的帖子
就是多少万的记录,在什么硬件下,查询速度怎么样,有的话给个链接看看
看一下这个速度有没有达到平均水平,

cpu 是2G2核的,redhat4系统

图片是帖错了

使用道具 举报

回复

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

本版积分规则 发表回复

PostgreSQL中国大会,参会票抢购!

由 PostgreSQL中文社区与ITPUB联合主办的第九届《PostgreSQL 中国技术大会》将在北京隆重召开。PostgreSQL 作为功能最强的的开源关系型数据库之一,得到了越来越多企业的推广和运用,也越来越受到广大技术爱好者的欢迎和重视。这将是 PostgreSQL 的又一次交流盛会。
----------------------------------------
时间:2019年11月29~11月30日

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