查看: 5860|回复: 10

[讨论] clustering_factor如何保证较小

[复制链接]
论坛徽章:
7
茶鸡蛋
日期:2013-06-14 13:16:17优秀写手
日期:2013-12-18 09:29:112014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:022015年新春福章
日期:2015-03-04 14:51:122015年新春福章
日期:2015-03-06 11:57:31ITPUB社区OCM联盟徽章
日期:2016-07-13 18:10:08
跳转到指定楼层
1#
发表于 2015-2-20 22:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
clustering_factor反映了索引值的排列顺序和表数据排列顺序之间的一致性,该值越小,运用到索引的查询/更新/删除语句使用索引的效率越高,否则很可能CBO建议使用全表扫描。
但要求有较低的clustering_factor,则必须保证表数据的插入顺序和索引插入顺序一致,这点可能对于不同的场景,难度不同,例如一个表中有多个索引,很可能为了保证这个索引的排列顺序和表数据插入排列顺序一致,则另外一个索引的clustering_factor就很高,很难均衡。
对于这种情况,请教下有什么好的建议么?或者说这种为了保证clustering_factor较低需要应用做什么配合比较合适呢?谢谢。
招聘 : 数据库管理员
论坛徽章:
25
ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25itpub13周年纪念徽章
日期:2014-10-08 16:34:19itpub13周年纪念徽章
日期:2014-10-10 17:49:05马上有车
日期:2014-12-19 09:23:24马上加薪
日期:2014-12-29 20:30:27马上有车
日期:2015-01-20 22:29:13美羊羊
日期:2015-03-04 14:52:282015年新春福章
日期:2015-03-06 11:58:18狮子座
日期:2015-07-14 14:44:11秀才
日期:2015-08-17 13:13:32
2#
发表于 2015-2-22 22:10 | 只看该作者
重建表,然后,
再重建索引

使用道具 举报

回复
论坛徽章:
314
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
3#
发表于 2015-2-23 10:44 | 只看该作者
鱼和熊掌不可兼得,应该考虑其他优化手段,

使用道具 举报

回复
论坛徽章:
194
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
4#
发表于 2015-2-23 11:59 | 只看该作者
你能做的最多是不要使用assm,这样不是密集插入的表也许能获得好的cf。

使用道具 举报

回复
论坛徽章:
314
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
5#
发表于 2015-2-24 11:01 | 只看该作者
lfree 发表于 2015-2-23 11:59
你能做的最多是不要使用assm,这样不是密集插入的表也许能获得好的cf。

assm  方式与密集插入,对cf有什么影响?

使用道具 举报

回复
论坛徽章:
194
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
6#
发表于 2015-2-24 20:24 | 只看该作者
ZALBB 发表于 2015-2-24 11:01
assm  方式与密集插入,对cf有什么影响?

assm 会使各个会话插入到不同的块,这样比如一些线性增加的字段,比如序号以及像日期这样的字段相邻的不在同一块中,人为导致cf偏高,而实际上这些字段的本质讲cf不应该很高

讲一个简单的例子加入插入后:
块1: 1,3,5,7,9
块2: 2,4,6,8,10
这样cf是10.

而如果你把这两块看成1个整体 ,cf=1

使用道具 举报

回复
论坛徽章:
0
7#
发表于 2015-3-12 16:05 | 只看该作者
重建表 create table  order by col1;
再建索引;
完事儿!
聚簇因子对索引范围扫的影响比较大,其余的索引扫意义不大。

使用道具 举报

回复
论坛徽章:
40
2014年新春福章
日期:2014-02-18 16:43:09喜羊羊
日期:2015-05-18 16:24:25慢羊羊
日期:2015-06-12 13:08:22暖羊羊
日期:2015-07-02 16:06:20暖羊羊
日期:2015-07-06 16:28:55狮子座
日期:2015-07-29 17:14:43摩羯座
日期:2015-09-02 13:58:47白羊座
日期:2015-09-08 10:39:06天枰座
日期:2015-09-17 21:41:53摩羯座
日期:2015-10-29 21:07:02
8#
发表于 2015-3-12 17:42 | 只看该作者
日复一日王 发表于 2015-3-12 16:05
重建表 create table  order by col1;
再建索引;
完事儿!

如果表上只有一个索引可以,如果有多个,那就是按下了葫芦起了瓢。这个索引合适了,另一个索引就会差。

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
38
2010新春纪念徽章
日期:2010-03-01 11:19:10ITPUB社区OCM联盟徽章
日期:2014-03-19 09:57:09问答徽章
日期:2014-03-17 09:53:582014年新春福章
日期:2014-02-18 16:43:09优秀写手
日期:2013-12-18 09:29:14奔驰
日期:2013-11-29 09:43:42阿斯顿马丁
日期:2013-11-19 10:38:162013年新春福章
日期:2013-02-25 14:51:24奥运会纪念徽章:游泳
日期:2012-09-11 12:38:112012新春纪念徽章
日期:2012-02-13 15:11:52
9#
发表于 2015-3-12 17:59 | 只看该作者
兼顾最主要的索引即可,不同的索引列排序都不一样,基本上很难做到所有的索引了的C_F都很小,具体根据业务场景来取舍吧。

使用道具 举报

回复
论坛徽章:
0
10#
发表于 2015-3-13 10:08 | 只看该作者
bfc99 发表于 2015-3-12 17:42
如果表上只有一个索引可以,如果有多个,那就是按下了葫芦起了瓢。这个索引合适了,另一个索引就会差。

难不成你这些索引都是范围扫的吗?只针对范围扫的索引做这个操作。如果有2个以上索引做范围扫,以涉及数据最多的范围扫为准。

使用道具 举报

回复

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

本版积分规则 发表回复

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