12
返回列表 发新帖
楼主: 0liyi0

[新特性] oracle10g(10.2.0.3.0)和9i的排序结果不同的问题

[复制链接]
论坛徽章:
95
秀才
日期:2015-10-08 17:57:58法拉利
日期:2013-12-30 15:11:23问答徽章
日期:2013-12-26 12:24:32优秀写手
日期:2013-12-18 09:29:13本田
日期:2013-12-09 10:02:28兰博基尼
日期:2013-11-18 17:44:52宝马
日期:2013-11-06 11:34:13雪佛兰
日期:2013-11-01 18:36:15宝马
日期:2013-10-25 08:22:20路虎
日期:2014-01-20 14:09:03
11#
发表于 2007-9-16 08:27 | 只看该作者
这才是正解!
最初由 xuanxuan 发布
[B]在10gR2中,group by由以前的sort group by改成了hash group by,这种算法上的改进,取消了sort group by必须进行的排序操作,即然是用hash算法,就存在碰撞的可能性,,应该算是bug吧。
要解决hash group by引起的排序不准确的问题,就是还用以前的sort group by就可以啦,10gR2中引入_gby_hash_aggregation_enabled隐藏参数,该参数默认设置为true,将它改成false即可。 [/B]

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
122
马上加薪
日期:2014-02-19 11:55:14ITPUB官方微博粉丝徽章
日期:2011-06-28 19:45:36管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:拳击
日期:2011-03-29 13:11:152010广州亚运会纪念徽章:篮球
日期:2011-02-20 22:50:172011新春纪念徽章
日期:2011-02-18 11:42:492011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
12#
发表于 2007-9-16 09:03 | 只看该作者
最初由 olive 发布
[B]这才是正解!
[/B]


楼主的情况,根本就没有group by,你这是哪门子的正解啊

使用道具 举报

回复
论坛徽章:
17
授权会员
日期:2008-08-18 15:32:56阿斯顿马丁
日期:2013-07-29 18:48:42蛋疼蛋
日期:2013-05-21 11:22:192012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41SQL大赛参与纪念
日期:2011-04-13 12:08:172011新春纪念徽章
日期:2011-03-21 14:26:302011新春纪念徽章
日期:2011-02-18 11:42:47ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522010年世界杯参赛球队:塞尔维亚
日期:2010-01-07 09:54:43
13#
发表于 2007-10-29 22:52 | 只看该作者

我认为4楼说得对.

至少我也是这么理解的.
看是不是用的了类似CURSOR_SHARING之类的优化方式呢?

使用道具 举报

回复
论坛徽章:
1
2009新春纪念徽章
日期:2009-01-04 14:52:28
14#
发表于 2010-3-19 23:28 | 只看该作者
alter system set "_gby_hash_aggregation_enabled"=false;
成功后
optimizer_mode=rule 和optimizer_mode=all_rows的执行结果不一样。
我想使用all_rows,排序按rule,程序已封装没法改,只能在数据库上想办法。
高手赐教

使用道具 举报

回复
论坛徽章:
54
秀才
日期:2017-02-22 15:18:002015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-03-04 14:48:16马上有对象
日期:2014-10-24 17:37:552014年世界杯参赛球队: 比利时
日期:2014-08-05 11:35:382014年世界杯参赛球队: 阿根廷
日期:2014-07-15 10:49:33马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11路虎
日期:2014-01-02 12:55:56ITPUB社区12周年站庆徽章
日期:2013-10-08 15:00:34
15#
发表于 2010-3-20 11:03 | 只看该作者
要排序应该加Order By。SQL SERVER对返回的数据是先返回Buffer里的,再从磁盘里读取并返回。。。若都从BUFFER读或磁盘读,顺序会按照PK or Cluster顺序返回。。。。我想Oracle也应该是这个策略

使用道具 举报

回复

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

本版积分规则 发表回复

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