电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

分区表无法使用延迟创建选项VIP免费

分区表无法使用延迟创建选项_第1页
1/8
分区表无法使用延迟创建选项_第2页
2/8
分区表无法使用延迟创建选项_第3页
3/8
刚才Shirly说无法在11Gr2创建分区表。我也试下她的语句:CREATETABLEfactura_consumo_churn(particionNUMBER,fechaDATE,anexoNUMBER(12,0)NOTNULL,tecnologiaVARCHAR2(4BYTE),tipo_productoVARCHAR2(2BYTE))SEGMENTCREATIONDEFERREDPCTFREE10INITRANS1MAXTRANS255TABLESPACEcext_data_exportSTORAGE(BUFFER_POOLDEFAULT)NOCACHEMONITORINGPARTITIONBYLIST(PARTICION)(PARTITIONp201208VALUES(201208)PCTFREE10INITRANS1MAXTRANS255NOLOGGING,PARTITIONp201209VALUES(201209)PCTFREE10INITRANS1MAXTRANS255NOLOGGING,PARTITIONp201210VALUES(201210)PCTFREE10INITRANS1MAXTRANS255NOLOGGING)PARALLEL(DEGREE4)/这是她的产品自动生成的语句。看下,第一反应,语句的亮点有2个,一个是分区,另一个则是11gr2新加的表延迟创建功能。什么是延迟创建呢?默认创建的表不会立及分配segment,不会占用磁盘空间,这听上去也是很合理的,当第一条数据insert时才会分配segment,而且不会因为truncate而回收。Exp导出也会报错的。先看下她给的库的默认创建规则:然后试下她给的语句,发现错误是可以重现的:不过我把语句尝试分别改成下面几种情况,都可以执行:CREATETABLEfactura_consumo_churn(particionNUMBER,fechaDATE,anexoNUMBER(12,0)NOTNULL,tecnologiaVARCHAR2(4BYTE),tipo_productoVARCHAR2(2BYTE))SEGMENTCREATIONIMMEDIATEPCTFREE10INITRANS1MAXTRANS255TABLESPACEcext_data_exportSTORAGE(BUFFER_POOLDEFAULT)NOCACHEMONITORINGPARTITIONBYLIST(PARTICION)(PARTITIONp201208VALUES(201208)PCTFREE10INITRANS1MAXTRANS255NOLOGGING,PARTITIONp201209VALUES(201209)PCTFREE10INITRANS1MAXTRANS255NOLOGGING,PARTITIONp201210VALUES(201210)PCTFREE10INITRANS1MAXTRANS255NOLOGGING)PARALLEL(DEGREE4)/CREATETABLEfactura_consumo_churn(particionNUMBER,fechaDATE,anexoNUMBER(12,0)NOTNULL,tecnologiaVARCHAR2(4BYTE),tipo_productoVARCHAR2(2BYTE))SEGMENTCREATIONDEFERREDPCTFREE10INITRANS1MAXTRANS255TABLESPACEcext_data_exportSTORAGE(BUFFER_POOLDEFAULT)NOCACHEMONITORINGPARALLEL(DEGREE4)/即证明,分区与延迟创建是不能共存的。我们立刻用工作建个分区表试试,果然,在创建分区表的DDL语句中,没有出现延迟创建的语句。而Shirly的工具是在图形化建完分区表之后,返回查建表的DDL语句,得到了上面的语句。我们借助oracle的DBMS_METADATA.GET_DDL看下真正的建表语句在数据库中是怎么存的:SELECTDBMS_METADATA.GET_DDL('TABLE','ALL_ARGUMENT','SHIRLY')FROMDUAL;CREATETABLE"NAVDEV"."PAR_TEST"("VFDVDFB"VARCHAR2(20))PCTFREE10PCTUSED40INITRANS1MAXTRANS255STORAGE(BUFFER_POOLDEFAULTFLASH_CACHEDEFAULTCELL_FLASH_CACHEDEFAULT)TABLESPACE"SNIE"PARTITIONBYLIST("VFDVDFB")(PARTITION"NewPartition_1"VALUES('12132132')PCTFREE10PCTUSED40INITRANS1MAXTRANS255STORAGE(INITIAL65536NEXT1048576MINEXTENTS1MAXEXTENTS2147483645PCTINCREASE0FREELISTS1FREELISTGROUPS1BUFFER_POOLDEFAULTFLASH_CACHEDEFAULTCELL_FLASH_CACHEDEFAULT)TABLESPACE"SNIE"NOCOMPRESS)确实没有延迟创建的选项的,虽然这库的默认是要加入延迟创建的选项的。我们改下当前数据库的默认延迟建表选项为false:altersystemsetdeferred_segment_creation=false;发现仍然如此,也就是工具不是按当前环境的参数,直接在建表时加入的延迟创建的选项。这是软件一个BUG。当然,这个BUG有两种情况,一种情况下没有问题,另一种情况下,就出问题了。就是普通表没事,分区表就挂了。我们下面做下实验,我直接帖sql语句了:SQL>showparameterdeferred_segment_creationNAMETYPEVALUE-----------------------------------------------------------------------------deferred_segment_creationbooleanTRUESQL>createtablet(idnumber);TablecreatedSQL>selectsegment_namefromuser_segmentswheresegment_name='T';SEGMENT_NAME-----------------------------------------------------------------------------...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

分区表无法使用延迟创建选项

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部