




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1优化Oracle库表设计的假设干方法1世碍前言
扩蛋绝大蛙多数两的O叉ra淘cl封e数社据库负性能柄问题辟都是厨由于榨数据搂库设桨计不膜合理网造成茶的,与只有阵少部年分问烦题根成植于董Da床ta球ba猴se驻B源uf减fe天r、矛Sh翠ar及e并Po套ol木、R麻ed柱o械Lo吗g挤Bu赵ff贷er腾等内牧存模挨块配破置不皇合理余,I额/O税争用愚,C丸PU跟争用鸡等D叔BA猾职责额范围虹上。挎所以哥除非清是面笋对一霉个业践已完竹成不竿可变贩更的夸系统异,否托那么我身们不蛾应过戒多地车将关踏注点钥投向唤内存吵、I乓/O役、C王PU站等性斩能调赞整项暮目上外,而逃应关退注数脱据库坑表本携身的盘设计捉是否易合理胃,库放表设藏计的复合理笋性才庸是程蒜序性帝能的缠真正拔执牛确耳者确。
司合理乳的数塘据库归设计今需要猾考虑她以下广的方撒面:
均己·业漏务数良据以搜何种苏方式壳表达涌。如汉一个挎员工文有多被个E坦ma怜il策,你顽可以烟在T石_E典MP床LO摩YE蒸E表岭中建模立多戒个E雾ma商il煮字段肤如e拌ma初il欺_1来、e预ma腥il拒_2除、e吓ma勒il乎_3灰,也钩可以喜创立捷一个眯T_嚼EM凝AI扣L子翁表来砌存储使,甚寺至可篮以用岗逗号臭分隔司开多苍个E适ma封il咸地址抱存放固在一曲个字歇段中托。
随朗·数君据以染何种赵方式巨物理夫存储访。如杯大表洪的分栗区,薯表空原间的泊合理兼设计苦等。
双再·如洪何建她立合诚理的测数据慎表索赠引。降表索流引几档乎是全提高锯数据驾表查祥询性业能最断有效岛的方加法,阅Or纲ac闯le婚拥有瓣类型捆丰富恒的数狭据表伟索引监类型浑,如锯何取东舍选贼择显奔得特密别重厅要。
志笋本文底我们督将目纱光主铁要聚悠焦于妈数据支表的较索引馆上,屡同时探也将江提及胜其他昨两点咳的内针容。陪通过筝对一乒个简谎单的牌库表筒设计炎实例扰的分桐析引吓出设塘计中氧的不维足,透并逐岛一改果正。身考虑听到手惧工编桌写库煌表的戴SQ蠢L脚榴本原惧始且鱼低效虏,我聚们将乖用目充前最捷流行盖的库掏表设物计工墨具P区ow命er钟De碍si同gn鸦er弄1套0来做讲述幼表设联计的藏过程央,所婶以在户本文牧中你安还会坝了解企到一健些相饿关的谣Po恰we呈rD堆es稿ig鉴ne诞r的壮使用想技巧蹄。
肺梁一个聋简单日的例沸子
狼挎某个膛开发搭人员疤着手倚设计裤一个药订单覆的系布统,玩这个棕系统确中有明两个扁主要犁的业可务表台,分悔别是幻订单敞根本刑信息努表和奶订单李条目脸表,扶这两骄张表捐具有提主从孔关系废的表扁,其谦中T欲_O庸RD鲜ER步是订旋单主究表,障而T苗_O呢RD糟ER布_I穴TE吊M是肿订单刷条目说表。舌数据锅库设犯计人莲员的利设计易成果色如图粮1小所示体:
图1订单主从表
注湾OR穷DE蛙R_恰ID披是订碗单号举,为梨T_阵OR就DE副R的怎主键爪,通象过名热为S废EQ违_O灭RD张ER辛_I欢D的训序列宜产生岛键值窄,而陪IT渡EM抢_I前D是喇T_兰OR治DE逢R_黎IT答EM训表的限主键劈,通汇过名萍为S坊EQ血_O填RD娘ER踢_I芹TE密M的位序列乘产生估键值悠,T垒_O驼RD炊ER和_I烟TE闹M通花过O勉RD细ER绘_I骑D外蜂键关风联到追T_涂OR悠DE践R表翼。
忙浪需求鼻文档饿指出盗订单授记录捆将通随过以堡下两皇种方朵式来它查询底数据辨:
法疏·C峰LI扑EN齿T隐+锁OR社DE由R_满DA商TE始+I殿S_旋SH造PP秒ED相:根放据"蓬客户宽+订础货日朗期+珠是否伙发货俘"条谋件查机询订枯单及梯订单纲条目泊。
兆糠·O祥RD债ER宴_D瓣AT出E+母IS悟_S浙HI葱PP拐ED香:根遇据"丽订货封日期雀+是扯否发蚀货"程条件莫查询迎订单肿及订兼单条天目。
胜晃数据亦库设点计人房员根查据这轧个要炊求,忽在T派_O扇RD奇ER挎表的猾CL巾IE含NT凝、页OR分DE歼R_控DA石TE斑及I继S_志SH神PP摔ED援三字银段上蛙建立匙了一润个复么合索心引I贴DX土_O径RD册ER敞_C票OM刃PO巾SI蚕TE络;在暮T_窄OR串DE亚R_汽IT美EM径为外雕键O币RD害ER旦_I蹲D建恩立I垒DX素_O扶RD乔ER丛_I泥TE蝶M_乐OR获DE巾R_基ID飘索引良。
掌忠让我召们看付一下漠该份搭设计扔的最垂终S医QL裂脚本敢:/*订单表*/
createtableT_ORDER(
ORDER_IDNUMBER(10)notnull,
ADDRESSVARCHAR2(100),
CLIENTVARCHAR2(60),
ORDER_DATECHAR(8),
IS_SHIPPEDCHAR(1),
constraintPK_T_ORDERprimarykey(ORDER_ID)
);
createindexIDX_CLIENTonT_ORDER(
CLIENTASC,
ORDER_DATEASC,
IS_SHIPPEDASC);
/*订单条目子表*/
createtableT_ORDER_ITEM(
ITEM_IDNUMBER(10)notnull,
ORDER_IDNUMBER(10),
ITEMVARCHAR2(20),
COUNTNUMBER(10),
constraintPK_T_ORDER_ITEMprimarykey(ITEM_ID)
);
createindexIDX_ORDER_ITEM_ORDER_IDonT_ORDER_ITEM(
ORDER_IDASC);
altertableT_ORDER_ITEMaddconstraintFK_T_ORDER__REFERENCE_T_ORDERforeignkey(ORDER_ID)referencesT_ORDER(ORDER_ID);
墨总我们梯成认映在E依R关筒系上料,这垃份设卸计并辟不存陡在的楚缺陷贞,但朗却存到在以吨下有挑待优蛙化的录地方饰:
阁猪·没平有将请表数微据和蔑索引创数据迹存储按到不启同的烈表空需间中姓,而创不加抬区别孟地将混它们吊存储适到同联一表贱空间广里。传这样币,不漏但会扶造成辣I/吨O竞对争,补也为舟数据谦库的性维护野工作锋带来没不便霉。
政健·O零RA唇CL在E会构自动瓶为表增的主怎键列右创立卡一个墙普通牵B-室Tr乘ee阅索引渡,但处由于苗这两飞张表区的主穴键值狡都通棍过序续列提涛供,棚具有慢严格宫的顺泼序性皇〔升足序或来降序腹〕,沙此时隆手工列为其敌指定桥一个奔反键名索引本〔r父ev假er悠se山k越ey甲i写nd肿ex猾〕将麦更加忆合理首。
属脱·在所子表上T_羽OR第DE排R_惩IT叉EM洋外键暑列O暑RD遭ER村_I健D上做建立屯的I宵DX妖_O胀RD祖ER鄙_I渣TE腾M_暂OR躺DE牧R_鸦ID颈的普给通B撞-T社re化e索休引非圾常适缝合设趴置为合压缩犹型索遥引,馆即建售立一凳个压蛾缩型秧的B胖-T薯re页e索诵引。碎因为撞一份搁订单俊会对匆应多掠个订潜单条席目,摊这就名意味映着T钳_O怕RD觉ER僵_I怜TE泊M表阿存在愈许多知同值爷的O桥RD凝ER驼_I短D列咳值,杠通过窗将其点索引惜指定艘为压挂缩型器的B锣-T迟re养e索岸引,晨不但奋可以乏减少怎ID归X_允OR吃DE啦R_爽IT抄EM橡_O棕RD轰ER岩_I哑D所注需的永存储参空间杀,还盼将提匠高表弄操作赵的性麻能。
柿犁·企歌图仅拆通过决建立妨一个脂包含秒3字情段I骑DX插_O葬RD即ER胃_C晓OM寇PO茧SI栽TE已复合稳索引德满足迟如前并所述袍的两泛种查倘询条序件方狮式的掌索引角是有圾问题映的,执事实垄上使遵用O验RD筑ER眠_D迎AT移E+此IS榴_S叨HI洪PP尤ED续复合历条件兔的查寨询将稼利用渔不到体ID掩X_珠OR目DE妹R_饰CO馅MP颗OS枯IT王E索插引。监补充隙:睡外键吧列秒索引亩问题座:神外键毅列上怪缺少恰索引国会带鉴来两老个问铺题,控限制秆并发班性、尤影响读性能东。而促这两堂个问菊题中旺的任瓜意一卸个都限可能糊会造系成严拍重性习能问轧题。挂无论拘是O筝ra历cl接e的虚官方扮文档朴,还犯是在资To举m的冈书中逝都说极明了法两种亭情况摩下可恋以忽旁略外雹键上木的索陷引。须其实戴不需销要那炊么麻床烦,趴与增乎加一博个索竞引所携带来数的性拔能开汽销和淋磁盘情空间令开销艺相比辟,确卡实索势引可务能引再发的光问题承要严膨重得哨多。浸因此肃,选纯择在障所有蚂的外偿键列脚上添鸽加索扑引,耗虽然巩可能崇导致铁创立启了部荒分多收余的煮索引掀,但树是这娃样游消双除了漫外键迎约束宣由于执确实逗索引惯所带盲来的埋性能垦问题膜和并发发性毁问题插。社
持
外夕键未普加索剧引是己导致舍死锁定的主三要的碧原因却;这宅是因妹为,和无论习是更凶新父债表主束键,充或者兆删除葬一个第父记热录,估都会膝在子剧表中亏加一青个表蒙锁〔添在这六条语构句完杠成前朽,不兔允许住对子寿表做灵任何陕修改般〕。优这就倘会不哲必要拘地锁次定更披多的恰行,皂而影徐响并禽发性沿。辽如果仇外键雪列上丰缺少县索引延,从捷主表安关联拴子表燥的查窗询就勤只能深对子颗表选岩择全碰表扫住描的纳查询箭,这袜是显贫而易霜见的株问题滥。优化Oracle库表设计的假设干方法2原优化劝设计
初四1、罢将表漂数据下和索治引数摄据分枕开表骨空间纳存储
捷欠1.暂1震表数慨据和做索引夕为何妻需要龟使用爪独立发的表源空间
凭右Or权ac颗le调强烈朱建立德,任懒何一驼个应努用程驻序的杜库表皇至少吐需要量创立牧两个兼表空烛间,捞其中欢之一幅用于傅存储清表数闸据,悔而另啦一个负用于得存储手表索挥引数雁据。五因为灾如果遇将表材数据育和索妨引数浙据放双在一详起,宪表数怀据的耳I/弦O操巷作和革索引宽的I亡/O垮操作欠将产最生影办响系古统性泊能的梳I/钱O竞哄争,奏降低捆系统猛的响损应效逃率。狂将表结数据馅和索辞引数域据存价放在休不同束的表诚空间赵中〔唱如一症个为乘AP侮P_届DA贡TA游,另杜一个毒为A婆PP严_I纲DX千〕,疫并在碧物理蹄层面蝴将这昏两个衰表空斜间的乎数据搜文件巴放在朱不同确的物退理磁唐盘上沙,就域可以册防止绩这种调竞争忠了。
幅莫拥有凝独立爸的表浮空间耀,就议意味优着可袍以独鬼立地逢为表害数据允和索讯引数侍据提爷供独帖立的体物理遭存储誉参数惹,而旷不会怀发生值相互警影响先,毕询竟表抱数据瓣和索满引数漏据拥径有不像同的季特性矛,而腹这些目特性松又直折接影驱响了恼物理信存储述参数允的设能定。
同嫩此外懂,表艘数据辛和索莲引数见据独至立存勇储,猎还会磁带来尝数据孔管理偶和维睛护上阻的方烤便宽。如万你在绞迁移纯一个锄业务才数据帅库时析,为草了降嫩低数初据大孔小,威可以盆只迁血出表绪数据难的表银空间木,在鸽目标颠数据流库中誉通过侵重建职索引梢的方侄式就尽可以芬生成洁索引疗数据贸了。
知干1.千2盾表数舒据和虏索引蓬使用糊不同营表空熔间的歉SQ咳L语恼法
善别指定汁表数发据及爽索引辱数据魔存储贪表空剧间语烦句最谁简单胖的形念式如宵下。
袍燕将表援数据条存储股在A陕PP滑_D傻AT甜A表造空间应里:
树cr余ea圈te泻t府ab倦le抵T治_O鼠RD软ER岸(奔O糊RD泉ER酿_I眼D轰NU我MB犁ER倒(1椅0)弃n倘ot捏n质ul仙l,垒…伸)t数ab降le刘sp称ac挥e田AP她P_脉DA晨TA馆;
管帜将索沃引数牢据存袍储在应AP还P_斩ID想X表港空间兼里:
拆cr佣ea正te披i巴nd岩ex宵I欺DX宗_O此RD抵ER擦_I特TE睁M_娃OR脂DE鸭R_萍ID尊o茎n蚕T_太OR铃DE者R_币IT绢EM吓(嫩O店RD穗ER庭_I怕D窃AS雹C)晃ta辩bl锈es走pa至ce摘A派PP东_I馆DX或;
吵法1.德3毒Po铅we娘rD花es碰ig冻ne佩r中亮如何蜡操作
呈盟1)宪首如先,饭必须尽创立魂两个吃表空骂间。捏通过兔Mo哲de师l-仰>T陈ab蛮le绕sp礼ac累e.央..横在L骗is导t桥of路T详ab成le吨sp夸ac三es藏中创瘦建两挑个表清空间劣:
图2创立表空间敬方2)蔑为奥每张靠表指踢定表英数据殖存储茧的表方空间唤。在泛设计背区中军双击遭表,秃翻开迟Ta舱bl段e扩Pr舰op受er挠ti说es妙设计业窗口国,切迟换到欣op养ti失on慎s赴页,谅按图肠3竟所示手指定乡表数蛋据的订存储之表空咱间。
图3指定表数据的存储表空间社泻3)闭为廊每个指索引利指定攻索引闲数据甜的存程储表聋空间求。在存Ta务bl蛮e底Pr赴op敲er吴ti驻es搬中切须换到赛In缺de抄xe抖s页颠,在侧这里誓列出秀了表秤的所唉有索股引,逢双击贱需设母置表刻空间潜的索栗引,厉在弹日出的尿In丢de妈x目Pr储op棒er偶ti在es结窗口遥中切蒜换到戒Op候ti梁on棋s页前,按真如下堂方式日指定拨索引呜的存档储表碗空间么。
图4指定索引数据的存储表空间萝库将外表空间奏的问盈题延搜展一恰下:秩一个卧应用牵系统狗库表愉的表始空间池可以建进行仇更精喘细的股划分套。
泻涛首先志,如闹果表搭中存聋在L慕OB套类型凭的字源段,继有为辣其指奔定一灶个特肢定的天表空睡间,钉因为乖LO榨B类评型的由数据本在物兔理存汉储结牧构的舞管理闪上和味一般列数据场的策矿略有子很大数的不球同,茎将其银放在刚一个悠独立赔的表哑空间巧中,健就可授方便馅地设赶置其颈物理斑存储洪参数突了。
柔会其次吐,需炉要考卸虑库丘表数戴据的熄DM孩L操峡作特盾性:胁根据悔DM躁L〔桐IN泻SE很RT汉,U氏PD榨AT泰E,线DE录LE急TE顶〕操椒作频杂繁程忆度,坡将几涨乎不摸发生驾任何牲DM义L操存作的唱数据宿放在音独立于的表象空间呜中,床因为恶极少毕DM拢L操喷作的缓表可晴设置着符合丑其特花性的积物理访参数天:如盈PC萄TF跟RE煌E可稳置为拜0,牌其B束UF抄FE存R_舱PO艇OL灯指定胜为K雅EE抵P,背以便凑将数敏据缓时存在漏KE考EP执数据即缓存泼区中男等等删,不辫一而完足。
宪暂此外虹,还吹可以难考虑施按业锹务需切要将坑不同财的业袋务模燕块分讲开存闸放,眯这主项要是猜考虑斤到备老份问椅题。匹假设晃我们女有一们局部拴业务爽数据且重要借性很璃强,刑而其交他的形业务厦数据陕重要笔性相愧对较未弱,费这样芳就可胶以将损两者贤分开甘存储悼,以锐便设接置不疼同的她备份盖策略违。
洪限当然咽,无散节制第的细休化表脂空间突也将喝带来福管理朱上和促部署肺上的快复杂才,根类据业烫务需羡求合晌理地挑规划烦表空作间以省到达唤管理结和性淡能上隆的最益佳往饿往需旷要更啊多的材权衡圣。优化Oracle库表设计的假设干方法3莲2、痰显式步为主央键列境建立证反向散键索支引
递惠2.寸1横反向挂键索杜引的但原理寻和用暴途
送奔我们绸知道透Or拿ac送le恳会自妄动为陈表的鼻主键办列建帝立索值引,剃这个坟默认破的索大引是蝴普通汽的B吩-T蚕re侮e索守引。影对于登主键伤值是障按顺型序(对递增岛或递挑减)冈参加搬的情垮况,黑默认油的B弄-T胃re恒e索产引并矩不理浙想。泼这是哈因为减如果暗索引稀列的菊值具挠有严正格顺铜序时预,随评着数欠据行店的插假设入,寇索引劈树的仔层级向增长啦很快份。搜湖索索笼引发沸生的辉I/底O读始写次志数和宴索引悟树的第层级衰数成恶正比层,也箱就是羡说,察一棵算具有寨5个拌层级秧的B眠-T增re燥e索搬引,就在最别终读零取到太索引世数据酬时最寻多可旨能发绳生多暂达5积次I旱/O弦操作悔。因筋而,死减少妨索引片的层弓级数常是索浇引性托能调改整的身一个昂重要艇方法游。
汪杰如果战索引飘列的挣数据踩以严湾格的草有序扰的方蚕式插炸入,虚那么陶B-询Tr全ee匙索引晕树将劫变成汤一棵绵不对维称的芽"歪朗树"电,如孩图京5所撞示:
图5不对称的B-Tree索引
班领而如太果索计引列敌的数融据以谦随机农值的李方式活插入所,我塔们将瘦得到劈一棵哀趋向器对称茄的索释引树卵,如汤图笔6所眨示:
图6对称的B-Tree索引
绒瞒比拟饭图侄5和疑图或6,己在图械5持中搜虑索到拼A块国需要寇进行鼓5次蜘I/朋O操疾作,赚而图冲6细仅需思要3骑次I候/O叠操作映。
材治既然然索引岸列数枣据从盏序列姑中获畜取,霸其有话序性忍无法裹躲避科,但筐在建吊立索悦引时唇,O烘ra鞠cl兽e允承许对葡索引速列的亲值进高行反缸向,绣即预石先对呈列值撇进行膨比特伶位的弄反向碗,如添10钞00娘,1灿00生01框,1守00葵11洪,1赵01指11无,1朽10蚊0经听过反陶向后鱼的值粘将是锡00发01卖,1赠00滤1,皇11料01驾,0帆01债1。孤显然剃经过蒸位反惯向处题理的臭有序怜数据剂变得直比拟糖随机服了,碑这样塘所得趋到的谋索引钢树就夫比拟忘对称酿,从痛而提黄高表祥的查政询性割能。
亡价但反看向键乓索引辞也有千它局役限性畏:如某果在从WH垦ER弟E语鲜句中鸦,需妖要对分索引艰列的慢值进事行范曾围性莫的搜新索,言如B渣ET有WE棵EN胖、<境、>福等,党其反容向键嘴索引傲无法悲使用抛,此伯时,冤Or谦ac松le陷将执筐行全潜表扫绪描;百只有晃对反鼠向键狂索引洪列进尽行脾<>降虏??站和每=脑的比杏较操隶作时伐,其士反向坑键索捷引才帅会得拾到使运用。
齐帆2.旬2羽反向蠢键索皇引的督SQ搞L语究句
懒付回到技我们芝上面戚的例蹦子,匠由于与T_讲OR臂DE到R和锐T_窗OR圾DE辫R_警IT抢EM绳的主恨键值雪来源胸于序涨列,溜主键衣值是像有严焰格顺逐序的天,所冻以我得们应污该摒负弃默更认的那Or堪ac吨le舱所提茧供的关索引爽,而堂采取缘显式述为主辨键指舰定一外个反及向键清索引尽的方蚁式。
停据OR反DE白R_钞ID情为T杯_O滋RD恭ER锯表的菌主键惰,主搬键名炮为P劈K_嘴OR障DE填R,碑我们关为O眨RD漏ER革_I株D列辉上建台立一浅个反医向键子索引鸦ID笨X_灶OR蓄DE在R_别ID乒,并因使P师K_乏OR狼DE练R_犯ID狐使用饿这个间索引竿,其颜SQ渠L语赤句如资下:createtableT_ORDER(
ORDER_IDNUMBER(10)notnull,
CLIENTVARCHAR2(60),
ADDRESSVARCHAR2(100),
ORDER_DATECHAR(8));
createuniqueindexIDX_ORDER_IDonT_ORDER(ORDER_IDASC)reverse;altertableT_ORDERaddconstraintPK_ORDERprimarykey(ORDER_ID)usingindexIDX_ORDER_ID;
窃蛙要保贼证创佩建I瓦DX素_O具RD类ER刻_I饱D的膜SQ辽L语良句在器创立齐PK虽_O藏RD非ER邻主键捕的S句QL应语句鸟之前绢,因蚊为主组键需完要引期用到拿这个父反向品键索红引。
踏拘由于目主键纱列的稍数据蜘是唯动一的券,所都以为雷ID离X_昨OR唉DE层R_佛ID霜加上废un槐iq音ue意限定炕,使诉其成姐为唯息一型议的索房引。
层网2.遵3貌Po店we长rd零De洗si波gn柔er稿如何热操作
码盆1)围首弱先,碍需要美为O慎RD形ER令_I滚D列桐建立何一个睁反向开键索兄引。到翻开商T_牧OR锣DE片R的签Ta丢bl练e贩Pr平op挎er饱ti窃es推的窗爽口,妈切换嫂到I园nd闪ex筹es贼页,旷新建至一个读名为纳ID诸X_蹲OR捎DE猛R_度ID币的索乖引。确填写桂完索险引的村名称积后,河双击驰这个球索引芳,弹加出I矩nd策ex洁P温ro匪pe观rt袜ie留s窗市口,改在这右个窗鹅口的课Co粱lu额mn糖s中沟选择足OR泰DE采R_冠ID摇列。傻然后燕,切芹换到出Op毁ti败on温s页蕉,按神图争7的梅方式卵将其吃设置尼为反瓶向键虑索引摧。
图7设置反向键索引
歌译2)脂显喷式指雁定主而键P快K_丙OR态DE贿R使本用这犹个索艰引。赶在T猾ab捉le四P姓ro渴pe幻rt欺ie落s窗息口中占切换搬到K削ey奏s页燕,默她认情灰况下粪,P披ow舞er竿De平si封gn谊er饭为T毒_O伴RD绍ER软所指谋定的长主键卫名为工Ke怪y1栏,我应们将盈其更县名为勉PK端_O世RD严ER覆,双章击这即个主可键,芽弹出废Ke盒y建Pr包op拳er四ti岛es谦窗口匹,切宁换到过Op假设ti漂on博s页厌,按与图煮8的呼方式依为P管K_救OR湿DE梅R指臭定I丽DX畏_O学RD妇ER画_I汉D。
图8为主键指定特定的索引
佳讲不可再否认场Po骨we袄rD奖es折ig辨ne惜r确芹实是酿目前币业界禁最强拦大易按用的队数据排库设迟计工堵具,权但很暂遗憾扭,当每我们浩为表击主键律指定秧一个册索引兴时,亿其产驾生的佳语句捐在顺蹄序上宗有问漏题:团即创凳建主扎键的纱语句昆位于让创立理索引钳语句当之前痒:createtableT_ORDER(…);altertableT_ORDERaddconstraintPK_T_ORDERprimarykey(ORDER_ID)usingindexIDX_ORDER_ID;createuniqueindexIDX_ORDER_IDonT_ORDER(ORDER_IDASC)reverse;
任膏我们钢可以钥通过贤对P达ow戒er微De扁si颜gn势er云生成乒SQ案L语甚句的挽设置浆进行典调整芝,先碎生成较创立慈表和居索引壳的S僻QL代语句胡,再哥创立酒为表刻添加疯主键盾和外轻键的毅SQ体L语饥句来疼到达升曲线报救国番的目傻的,臂请看案下一灾步。
跟姐3)侦通过某菜单资Da蔑ta茧ba粱se顿->续Ge脑ne诞ra瓦te共D前at耻ab嘱as匆e.罪..进调出伸Da戏ta茶ba洁se奶C代on选fi叹gu佣ra船ti翁on劫窗口规,切标换到到Ke怎ys调&I性nd授ex浇es钻页,葱按图眼9酸设置保:
图9设置生成键和索引SQL的选项
挪面这里友,我所们将酸Pr繁im误ar难y陪Ke信ys收和F粪or誓ei瑞gn搏k珠ey序s的孟选项只都取骨消,挡而将汤In种de敬xe乐s勾谅选,结以达鄙到只冤生成夜表的驴索引桂SQ默L语内句的捉目的馒。
章看点击庸"确畏定"竟后,拔生成往创立绵数据鼓库表险及其交索引挺的S剩QL较语句涝,运幻行该炎SQ碑L创械建数井据库夜后,堪再按督图浮10砍设置闷生成蹲为表方添加伴主键勾和外采键的仔SQ证L语请句:
图10生成创立表主键和外键的SQL语句
偏稀除此贫设置吓外,巩还必假须切旧换到创Ta远bl纲es狗&吹V照ie许ws邻页下轧,取柄消所狭有选矮项,漆防止算重新利生成悼创立循表的腥语句悟。顿优化棍Or着ac尤le悼库表笼设计悼的假设捎干方拦法蹦43、将子表的外键列的索引改为压缩型
3.1压缩型索引的原理和用途
在前面的例子中,由于一条订单会对应多条订单条目,所以T_ORDER_ITEM的ORDER_ID字段总会出现重复的值,如:ITEM_IDORDER_IDITEMCOUNT
11001011
21001042
31002013
42003012
52004011
62002053
在ORDER_ID列上创立一个普通未压缩的B-Tree索引,那么索引数据的物理上的存储形式如下:
图11未进行压缩的索引存储
ORDER_ID的重复值在索引块中重复出现,这样不但增加了存储空间的需求,而且因为查询时需要读取更多的索引数据块,所以查询性能也会降低。让我们来看一下经过压缩后索引数据的存储方式:
图12进行压缩的索引存储
压缩型的索引消除了重复的索引值,将相同索引列值所关联的ROWID存储在一起。这样,不但节省了存储空间,查询效率也提高了,真可谓两全齐美了。
对象T_ORDER和T_ORDER_ITEM这样的主从表进行查询时,一般情况下,我们都必须通过外键查询出子表所有关联的记录,所以在子表的外键上建立压缩型的索引是非常适合的。
3.2压缩型索引的SQL语句
创立压缩型索引的SQL语句非常简单,在T_ORDER_ITEM的ORDER_ID上创立压缩型索引的SQL如下所示:createindexIDX_ORDER_ITEM_ORDER_IDonT_ORDER_ITEM(ORDER_IDASC)compress;
需要在创立索引的语句后附上compress关键字就可以了。
3.3PowerDesigner如何创立压缩型索引
1)翻开T_ORDER_ITEM表的TableProperties的窗口,切换到Indexes页,为ORDER_ID列创立一个名为IDX_ORDER_ITEM_ORDER_ID的索引。
2)双击IDX_ORDER_ITEM_ORDER_ID弹出IndexProperties窗口,切换到Options页,按图13将索引设置为压缩型:
图13将索引指定为压缩型
4、建立满足需求的复合键索引
设计人员希望通过T_ORDER表上的IDX_ORDER_COMPOSITE复合索引满足以下两种组合条件的查询:
·CLIENT+ORDER_DATE+IS_SHIPPED
·ORDER_DATE+IS_SHIPPED
为方便阐述,我们特地将IDX_ORDER_COMPOSITE的创立SQL语句再次列出:createindexIDX_ORDER_COMPOSITEonT_ORDER(CLIENTASC,ORDER_DATEASC,IS_SHIPPEDASC);
事实上,在CLIENT+ORDER_DATE+IS_SHIPPED三列上所执行的复合条件查询会应用到这个索引,而在ORDER_DATE+IS_SHIPPED列上所执行的复合查询不会使用这个索引,因而将导致一个全表扫描的操作。
可以用许多工具来了解查询语句的执行方案,通过SETAUTOTRACEON来查询以上两个复合查询的执行方案:
翻开SQL/Plus,输入以下的语句:SQL>setautotraceon
SQL>select*fromt_orderwhereCLIENT='1'andORDER_DATE='1'andIS_SHIPPED='1';
分析得到的执行方案为:SELECTSTATEMENTOptimizer=CHOOSETABLEACCESS(BYINDEXROWID)OF'T_ORDER'INDEX(RANGESCAN)OF'IDX_ORDER_COMPOSITE'(NON-UNIQUE)
可见Oracle先利用IDX_ORDER_COMPOSITE得到满足条件的记录ROWID,再通过ROWID返回记录。
而下面查询语句:SQL>select*fromt_orderwhereORDER_DATE='1'andIS_SHIPPED='1'
的执行方案那么为:SELECTSTATEMENTOptimizer=CHOOSETABLEACCESS(FULL)OF'T_ORDER'
很明显,Oracle在T_ORDER表上执行了一个全表扫描的操作,没有用到IDX_ORDER_COMPOSITE索引。
对复合列索引,我们得出这个结论:
假设在COL_1,COL_2,…,COL_n这些列上建立了一个复合索引:createindexIDX_COMPOSITEonTABLE1
{
COL_1,
COL_2,
…,
COL_n
}
那么只有WHERE语句上包含COL_1(复合索引的第一个字段)的查询才会使用这个复合索引,而未包含COL_1的查询那么不会使用这个复合索引。
回到我们的例子,如何建立满足CLIENT+ORDER_DATE+IS_SHIPPED和ORDER_DATE+IS_SHIPPED两种查询的索引呢?
考虑到IS_SHIPPED列基数很小,只有两个可能的值:0,1。在这种情况下,有两种方案:第一,分别为CLIENT+ORDER_DATE+IS_SHIPPED和ORDER_DATE+IS_SHIPPED建立一个复合索引;第二,分别在CLIENT和ORDER_DATE列上建立一个索引,而IS_SHIPEED列不建立索引。
第一种方案的查询效率最快,但因为CLIENT和ORDER_DATE在索引中会重复出现两次,占用较大的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- VVST吞咽评估流程规范
- 双胎宝宝日常护理
- 吉林铁道职业技术学院《MATAB应用》2023-2024学年第一学期期末试卷
- 中央音乐学院《工程测量学2》2023-2024学年第一学期期末试卷
- 青海农牧科技职业学院《跨文化商务交际》2023-2024学年第一学期期末试卷
- 新乡职业技术学院《微生物制药工程》2023-2024学年第一学期期末试卷
- 南京工程学院《大学英语1》2023-2024学年第一学期期末试卷
- 山东交通职业学院《职前与就业训练》2023-2024学年第一学期期末试卷
- 江西工程学院《影视灯光与照明》2023-2024学年第一学期期末试卷
- 天水师范学院《数码摄影与制作》2023-2024学年第一学期期末试卷
- 2025年 云南省危险化学品经营单位安全管理人员考试练习题附答案
- 2025-2030年中国高导磁芯行业深度研究分析报告
- 远程胎心监护数据解读
- 2025年 道路运输企业主要负责人考试模拟试卷(100题)附答案
- 2025至2030中国执法系统行业经营效益及前景运行态势分析报告
- 2025年全国法医专项技术考试试题及答案
- 供应链公司展会策划方案
- 南通市崇川区招聘 社区工作者笔试真题2024
- 2025年宁夏银川市中考历史三模试卷(含答案)
- 【艺恩】出游趋势洞察报告
- 商业地产项目成本控制与管理措施
评论
0/150
提交评论