查看: 3873|回复: 10

看了一本优化的书,不知道是我理解错了还是书写错了

[复制链接]
论坛徽章:
4
2010新春纪念徽章
日期:2010-03-01 11:19:06ITPUB十周年纪念徽章
日期:2011-11-01 16:24:042012新春纪念徽章
日期:2012-01-04 11:53:542013年新春福章
日期:2013-02-25 14:51:24
发表于 2010-3-26 15:41 | 显示全部楼层 |阅读模式
The first problem is related to primary keys and unique indexes. In fact, to be based on local indexes, their keys must contain the partition key.

这个应该怎么理解? 我开始时理解成如果一个表上有本地索引,并且这个表要建立PK或者UNIQUE INDEX那么PK或者UNIQUE INDEX一定要包含partition key,但是实际上我的测试结果是不正确的
论坛徽章:
120
现任管理团队成员
日期:2011-05-07 01:45:08乌索普
日期:2019-02-14 23:54:04
发表于 2010-3-26 15:45 | 显示全部楼层
原文的意思是,如果你要在分区表上建立主键或者唯一索引,并且想用local index实现的话,就必须包含partition key

使用道具 举报

回复
论坛徽章:
4
2010新春纪念徽章
日期:2010-03-01 11:19:06ITPUB十周年纪念徽章
日期:2011-11-01 16:24:042012新春纪念徽章
日期:2012-01-04 11:53:542013年新春福章
日期:2013-02-25 14:51:24
 楼主| 发表于 2010-3-26 16:01 | 显示全部楼层
好,谢谢。但是能否这么理解如果是普通索引的话,不包括partition key的话,有时候也能使用LOCAL索引。当时只是有时候。但是对PK或者UNIQUE来说则是绝对才可以

使用道具 举报

回复
招聘 : Java研发
论坛徽章:
9
授权会员
日期:2005-12-23 16:28:18会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44铁扇公主
日期:2007-10-26 16:08:47生肖徽章2007版:鸡
日期:2008-01-02 17:35:532009新春纪念徽章
日期:2009-01-04 14:52:282009日食纪念
日期:2009-07-22 09:30:00祖国60周年纪念徽章
日期:2009-10-09 08:28:00ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28
发表于 2010-3-26 16:52 | 显示全部楼层
本地索引必须包含分区键!

使用道具 举报

回复
论坛徽章:
4
2010新春纪念徽章
日期:2010-03-01 11:19:06ITPUB十周年纪念徽章
日期:2011-11-01 16:24:042012新春纪念徽章
日期:2012-01-04 11:53:542013年新春福章
日期:2013-02-25 14:51:24
 楼主| 发表于 2010-3-26 17:47 | 显示全部楼层
原帖由 zhpsam 于 2010-3-26 16:52 发表
本地索引必须包含分区键!



  这个你搞错了吧。。。

使用道具 举报

回复
论坛徽章:
8
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442009日食纪念
日期:2009-07-22 09:30:002010新春纪念徽章
日期:2010-01-04 08:33:082010新春纪念徽章
日期:2010-03-01 11:19:072011新春纪念徽章
日期:2011-01-04 10:37:10ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24
发表于 2010-3-26 17:50 | 显示全部楼层
原帖由 zhpsam 于 2010-3-26 16:52 发表
本地索引必须包含分区键!


no。虽然是按分区键分割的,但建的时候可以不带分区键, 一个local关键字就ok了

使用道具 举报

回复
论坛徽章:
9
生肖徽章2007版:鼠
日期:2009-04-28 12:11:56祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-01-04 08:33:082010广州亚运会纪念徽章:自行车
日期:2010-11-17 17:05:31ITPUB十周年纪念徽章
日期:2011-11-01 16:24:51
发表于 2010-3-26 18:50 | 显示全部楼层
只是在建立unique index LOCAL 的时候必须要partition key

使用道具 举报

回复
论坛徽章:
22
2010新春纪念徽章
日期:2010-03-01 11:08:33马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09
发表于 2010-3-26 22:56 | 显示全部楼层
local index只有包含partition key才可以用来作为primary key/foreign key的约束索引.

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
9
生肖徽章2007版:牛
日期:2009-03-10 21:26:492010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:葡萄牙
日期:2010-02-22 14:35:242010新春纪念徽章
日期:2010-03-01 11:19:092010广州亚运会纪念徽章:射击
日期:2010-09-08 23:42:12ITPUB9周年纪念徽章
日期:2010-10-08 09:31:212010广州亚运会纪念徽章:拳击
日期:2010-10-30 00:46:582011新春纪念徽章
日期:2011-02-18 11:43:322011新春纪念徽章
日期:2011-03-01 08:49:39
发表于 2010-3-27 01:41 | 显示全部楼层
我是这样理解的,不知道对不对,
1。主键是唯一标识记录的,在分区表中 Local Index 是仅对所在分区的数据进行索引,因此Local Index只能回答自己的分区内是否会有重复的键值(在Index中查找)。
2。如果要达到“唯一标识”,只能对所有的分区的数据进行索引,其中一种实现方法是 global index 了。
3。如果非要用Local Index 作为分区表的主键的实现方式的话,那么这个索引的条目就要包含两部分内容:1。唯一标识数据是在哪个分区的,也就是分区键 ; 2。在分区内可以唯一标识在分区内的数据,也就是业务上的主键了。

使用道具 举报

回复
论坛徽章:
4
2010新春纪念徽章
日期:2010-03-01 11:19:06ITPUB十周年纪念徽章
日期:2011-11-01 16:24:042012新春纪念徽章
日期:2012-01-04 11:53:542013年新春福章
日期:2013-02-25 14:51:24
 楼主| 发表于 2010-3-31 15:39 | 显示全部楼层
原帖由 zwc1083 于 2010-3-26 18:50 发表
只是在建立unique index LOCAL 的时候必须要partition key



  确实是这样,但是ORACLE为什么要这么做呢?想不明白

使用道具 举报

回复

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

本版积分规则 发表回复

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