12
返回列表 发新帖
楼主: luhuibiao89

[性能调整] cbo执行计划选择的索引,如何理解

[复制链接]
论坛徽章:
8
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:07:24ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:31
11#
发表于 2021-2-20 16:33 | 只看该作者
本帖最后由 sqysl 于 2021-2-20 17:54 编辑
luhuibiao89 发表于 2021-2-19 17:59
那  索引  index: IDX_HPS_AC_DT__LOG_NO -》 t_jnl_separ (ac_dt,HPS_LOG_NO) 相比index:IDX_THJS_AC_DT ...

应该是一样的,你可以试试看。说一样还是欠妥,因为复合索引比单列索引更大,因此,应该是可能比原单列索引更差。

使用道具 举报

回复
论坛徽章:
8
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:07:24ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:31
12#
发表于 2021-2-20 16:34 | 只看该作者
ZALBB 发表于 2021-2-20 15:46
access("JNL"."LOG_NO"=SYS_OP_C2C("SEP"."HPS_LOG_NO"))查看下这两字段的数据类型,为何需要转换?

"JNL"."LOG_NO"为nchar或nvarchar2,"SEP"."HPS_LOG_NO"为char或varchar2。

使用道具 举报

回复
论坛徽章:
8
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:07:24ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:31
13#
发表于 2021-2-20 16:35 | 只看该作者
楼主强制索引中AC_DT成为了非先导列,所以,走了skip scan,这个不是个最优选项,比CBO选择的索引成本更高。

使用道具 举报

回复
论坛徽章:
0
14#
 楼主| 发表于 2021-2-20 17:58 | 只看该作者
ZALBB 发表于 2021-2-20 15:46
access("JNL"."LOG_NO"=SYS_OP_C2C("SEP"."HPS_LOG_NO"))查看下这两字段的数据类型,为何需要转换?

LOG_NO 是 NVARCHAR2 类型,HPS_LOG_NO 是 VARCHAR2 类型

使用道具 举报

回复
论坛徽章:
0
15#
 楼主| 发表于 2021-2-20 18:10 | 只看该作者
sqysl 发表于 2021-2-20 16:33
应该是一样的,你可以试试看。说一样还是欠妥,因为复合索引比单列索引更大,因此,应该是可能比原单列索引 ...

前导列一样的情况下,单列索引会比复合索引 效果好些 ,因为 复合索引更大扫描起来的成本会高一些?

使用道具 举报

回复
论坛徽章:
8
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:07:24ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:31
16#
发表于 2021-2-20 18:13 | 只看该作者
luhuibiao89 发表于 2021-2-20 18:10
前导列一样的情况下,单列索引会比复合索引 效果好些 ,因为 复合索引更大扫描起来的成本会高一些?

对。
如果能走索引覆盖,复合索引会更好,但你这里走不了索引覆盖,所以,复合索引没意义。

使用道具 举报

回复

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

本版积分规则 发表回复

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