收藏 分销(赏)

Exadata一体机最佳实践PPT.ppt

上传人:精*** 文档编号:5439035 上传时间:2024-11-02 格式:PPT 页数:89 大小:1.11MB
下载 相关 举报
Exadata一体机最佳实践PPT.ppt_第1页
第1页 / 共89页
Exadata一体机最佳实践PPT.ppt_第2页
第2页 / 共89页
点击查看更多>>
资源描述
娄恒娄恒:APAC Exadata specialistBOC ACRM数据库物理模型数据库物理模型和开发最佳实践和开发最佳实践提纲提纲提纲提纲数据库空间管理数据库空间管理数据仓库物理表设计(表压缩、表分区)数据仓库物理表设计(表压缩、表分区)数据加载数据加载并行执行并行执行开发注意事项(集合、关联操作)开发注意事项(集合、关联操作)索引管理索引管理统计信息收集统计信息收集22010OracleCorporationProprietaryandConfidentialTips 1:Tips 1:设置合适的设置合适的设置合适的设置合适的DB_Block_SizeDB_Block_Size对Exadata而言,MAX_IO_SIZE缺省为1MB所以推荐DB_BLOCK_SIZE设置为8192同时推荐DB_FILE_MULTI_BLOCK_READ_COUNT设置为128因为_MAX_IO_SIZE=DB_FILE_MULTI_BLOCK_READ_COUNT*DB_block_size。32010OracleCorporationProprietaryandConfidentialTipsTips:采用采用采用采用locally managed,Bigfilelocally managed,Bigfile创建表空间创建表空间创建表空间创建表空间4TipsTips:选择表空间选择表空间选择表空间选择表空间合适的合适的合适的合适的ExtentExtent管理方法管理方法管理方法管理方法采用Auto-Allocate方式,Oracle自动管理表的Extent的大小,开始时初始的Extent大小为64KB(除Partition表外),当表或索引的段(Segment)大小超过1MB,Extent以1MB为单位增长段空间,一旦段大小超过64MB,Extent以8MB为单位增长段空间。采用Uniform方式,所有段的Extent大小都是统一大小。对于Auto-Allocate方式和Uniform方式的选择,Oracle推荐采用推荐采用Auto-Allocate作为作为Extent的管理方式。的管理方式。52010OracleCorporationProprietaryandConfidentialSalesTableSalesTableUniform ExtentUniform Extent:数据并行加载特点:数据并行加载特点:数据并行加载特点:数据并行加载特点假设有4个并行进程进行数据加载,Uniformextend大小为8MB当多块加载后,将会有很多未被填满的Extent存在,也就是说Extent中可能会有很多空间空洞在表扫描时,每个空间空洞会被扫描到,造成IO的浪费62010OracleCorporationProprietaryandConfidentialAuto-Allocate ExtentAuto-Allocate Extent:数据并行加载特点:数据并行加载特点:数据并行加载特点:数据并行加载特点假设有4个并行进程进行数据加载,initial&nextextend大小为8MBSalesTableSalesTable当加载完成后,最后一些Extent大小会比其他Extent小,但是所有Extent都会被填满每个表或分区扫描将至扫描数据,而没有空闲空间被扫描采用Auto-allocate的优点在于大数据加载时,有最少的空间浪费,因为最后加载的Extent会被Trim到64KB的整数倍的大小,所以几乎没有太大的空间浪费,同时表扫描时也可以提高IO效率采用Auto-Allocate方式时,在创建分区表时,可以自动支持Large Extent(8MB Extent),而对于uniform方式,则无法支持72010OracleCorporationProprietaryandConfidentialTipsTips:创建多个创建多个创建多个创建多个BigfileBigfile表空间存储不同的分区表空间存储不同的分区表空间存储不同的分区表空间存储不同的分区在对大的在对大的Partition表进行并行数据加载时,应该尽可能避免文件头块争用(表进行并行数据加载时,应该尽可能避免文件头块争用(File Header Blocker contention)情况出现。文件头块争用()情况出现。文件头块争用(File Header Blocker contention)可以在)可以在AWR报告中检查报告中检查“gc buffer busy enqueue wait event”。或者检查。或者检查“buffer busy waits”的统的统计信息,以判断是否存在计信息,以判断是否存在File Header Blocker contention,可以使用如下,可以使用如下SQL:CREATETABLEsales_composite(salesman_idNUMBER(5),salesman_nameVARCHAR2(30),sales_amountNUMBER(10),sales_dateDATE)PARTITIONBYRANGE(sales_date)SUBPARTITIONBYHASH(salesman_id)subpartitions128storein(ts1,ts2,ts3,ts4)(PARTITIONsales_jan2000VALUESLESSTHAN(TO_DATE(02/01/2000,MM/DD/YYYY),PARTITIONsales_feb2000VALUESLESSTHAN(TO_DATE(03/01/2000,MM/DD/YYYY),PARTITIONsales_mar2000VALUESLESSTHAN(TO_DATE(04/01/2000,MM/DD/YYYY),PARTITIONsales_apr2000VALUESLESSTHAN(TO_DATE(05/01/2000,MM/DD/YYYY),PARTITIONsales_may2000VALUESLESSTHAN(TO_DATE(06/01/2000,MM/DD/YYYY);selectp1File#,p2Block#,p3ReasonCodefromv$session_waitwhereevent=bufferbusywaits;为了避免文件头争用情况,可以采用多个为了避免文件头争用情况,可以采用多个Big file tablespace来均匀存放来均匀存放Partition table。例如:下面语句使用例如:下面语句使用4个表空间来均匀存放个表空间来均匀存放128个个Subpartition表:表:82010OracleCorporationProprietaryandConfidentialTipsTips:对于分区表(对于分区表(对于分区表(对于分区表(PartitionPartition)加载,启用)加载,启用)加载,启用)加载,启用Large ExtentLarge Extent推荐大的对象使用推荐大的对象使用Large Extent方式,以便减少方式,以便减少Extent的数量。当设置的数量。当设置CELL_PARTITION_LARGE_EXTENTS=TRUE时,所有分区表在创建时,将自动启时,所有分区表在创建时,将自动启动动Large Extent模式(模式(8MB),即创建时即创建时Initial Extent大小为大小为8MB。限制条件:限制条件:-CELL_PARTITION_LARGE_EXTENTS仅适用于:分区表、locallymanaged和AUTO-ALLOCATE的表空间。-不适合于:非分区表、Uniform的表空间的对象。92010OracleCorporationProprietaryandConfidentialTipsTips:针对非分区表(针对非分区表(针对非分区表(针对非分区表(Non-PartitionNon-Partition)加载,使用)加载,使用)加载,使用)加载,使用Large ExtentLarge Extent如果对于非分区表,想使用LargeExtent(8MB)。需要在Createtable的DDL中设置INITIAL和NEXT子句。当对非分区表进行并行数据加载时,数据在Temp段中被生成,然后再合并到要加载的数据表的Extent中,缺省按照64KBExtent大小进行数据增长。但从11.1.0.7开始,在加载数据时(Load),NEXT用来控制新的Extent的大小。所以对于大的非分区表加载,可以直接将INITIAL和NEXT都设置为8MB。SQL如下:CreateTablesales(.)parallelstorage(INITIAL8MNEXT8M)(.)102010OracleCorporationProprietaryandConfidentialTipsTips:关闭关闭关闭关闭deferred_segment_creationdeferred_segment_creation(段延迟创建)功能(段延迟创建)功能(段延迟创建)功能(段延迟创建)功能从从11g R2开始,当在开始,当在Locally Managed Tablespace上,创建一个非分区表上,创建一个非分区表时,缺省情况表的空间分配会启用延迟分配方式,即当首行被时,缺省情况表的空间分配会启用延迟分配方式,即当首行被Insert到到表中时,表的表中时,表的Extent才会被逐渐分配。建议关闭延迟空间空间分配,才会被逐渐分配。建议关闭延迟空间空间分配,可以通过如下可以通过如下SQL关闭:关闭:Altersystemsetdeferred_segment_creation=FALSEscope=both112010OracleCorporationProprietaryandConfidentialTips:Tips:空间回收空间回收空间回收空间回收Shrinking SegmentsShrinking SegmentsHWMHWMHWMALTER TABLE employees SHRINK SPACE COMPACT;1ALTER TABLE employees SHRINK SPACE;2DMLoperationsandqueriescanbeissuedduringcompaction.DMLoperationsareblockedwhentheHWMisadjusted.122010OracleCorporationProprietaryandConfidential提纲提纲提纲提纲数据库空间管理数据库空间管理数据仓库物理表设计(表压缩、表分区)数据仓库物理表设计(表压缩、表分区)数据加载数据加载并行执行并行执行开发注意事项(集合、关联操作)开发注意事项(集合、关联操作)索引管理索引管理统计信息收集统计信息收集142010OracleCorporationProprietaryandConfidentialTipsTips:数据仓库设计:数据仓库设计:数据仓库设计:数据仓库设计一个典型的数据仓库是一个一个典型的数据仓库是一个Many Rows System,但经常会但经常会被用被用Few Rows System的方式来开发的方式来开发(Row By Row)在大多数情况下,在大多数情况下,Many Rows System还是还是Few Rows System可以通过可以通过SQL语句的执行频度决定:语句的执行频度决定:-1/Sec代表manyrows-1000/Sec代表fewrows-备注:在ManyRowsSystem中,可能存在一种误导:批量集合操作(SetBasedOperation)通过RowByRow的操作方式开发效率更高152010OracleCorporationProprietaryandConfidentialTipsTips:数据仓库物理模型设计原则:数据仓库物理模型设计原则:数据仓库物理模型设计原则:数据仓库物理模型设计原则Many Rows-并行(Parallelism)-分区(Partitioning)-压缩(Compression)-集合批量操作(Set-basedtechniques)-通过数据转换代替实现数据更新(Datamodifiedbytransformation)Few Rows-索引(Indexdesign)-物化视图(Materializedviewsandaggregates)162010OracleCorporationProprietaryandConfidentialTipsTips:数据压缩考虑:数据压缩考虑:数据压缩考虑:数据压缩考虑压缩技术是数据仓库物理设计最重要的因素之一压缩技术是数据仓库物理设计最重要的因素之一压缩的影响压缩的影响:-极大加速表扫描速度、减少磁盘空间占用、加速数据备份-但是,压缩对大大降低UPDATE和DELETE的效率一个好的数据仓库模型,对于压缩表而言,将只采用一个好的数据仓库模型,对于压缩表而言,将只采用Append方式操作,方式操作,避免采用修改(避免采用修改(Update、Delete、Merge)方式对数据的操作,以保证)方式对数据的操作,以保证对压缩表操作的效率对压缩表操作的效率但是如果一些经常更新的大表确实有压缩的需求,可以考虑使用但是如果一些经常更新的大表确实有压缩的需求,可以考虑使用OLTPOLTP压缩技术。压缩技术。无论无论HCCHCC压缩还是压缩还是OLTPOLTP压缩,其本质都是去重,只是其算法上有些差压缩,其本质都是去重,只是其算法上有些差异。因而异。因而如果在数据加载时,对数据预先排序,那么可带来明显的压如果在数据加载时,对数据预先排序,那么可带来明显的压缩比率的提升。缩比率的提升。一般来说,一般来说,压缩级别压缩级别QUERY HIGHQUERY HIGH既可以得到一个理想的压缩比率,也既可以得到一个理想的压缩比率,也能提供很好的查询性能,可以考虑作为初始测试的压缩级别能提供很好的查询性能,可以考虑作为初始测试的压缩级别.172010OracleCorporationProprietaryandConfidentialTipsTips:EHCC EHCC 混合列压缩混合列压缩混合列压缩混合列压缩EHCC(Exadata Hybrid Columnar Compression)不是完全的列压缩,而是混不是完全的列压缩,而是混合列存储合列存储EHCC具备多种压缩类型具备多种压缩类型-Querylow-Queryhigh-Archivelow-Archivehigh设计用于不频繁修改的数据设计用于不频繁修改的数据设计用于低并发的场景设计用于低并发的场景支持数据库各种功能支持数据库各种功能-DMLs/DDLs,Partitioning,PQ,PDML,Onlineredefinition,CTAS,IAS,SQLLoader,Externaltables,Context,MVsetc.支持索引支持索引只有在数据批量加载时被压缩只有在数据批量加载时被压缩182010OracleCorporationProprietaryandConfidentialTipsTips:如何创建:如何创建:如何创建:如何创建EHCCEHCC表表表表lCTAS(create table as select)-createtablefoocompressforqueryasselect*frombar1;lIDL(insert direct load)-createtablefoocompressforarchivelow;-insert/*+APPEND*/intofooselect*frombar2;l压缩可以在压缩可以在Segment一级指定:一级指定:-每个分区可以有不同的压缩类型-例如:createtableorders(cid,pid,sid,price,discount,odate)partitionbyrange(cid)(partitionp1valueslessthan(100000)nocompress,partitionp2valueslessthan(200000)compressforarchivelow,partitionp3valueslessthan(300000)compressforqueryhigh,partitionp4valueslessthan(maxvalue)compressforquerylow)enablerowmovementasselect*fromprev_orders;192010OracleCorporationProprietaryandConfidentialTipsTips:动态启用或停用表的:动态启用或停用表的:动态启用或停用表的:动态启用或停用表的EHCCEHCC-Existingtables/partitionscanbeconvertedtouseEHCC-altertablebarmove compress for query high-altertableordersmodifypartitionp1move compress for archive low-Newdataloadedinexistingtables/partitionscangotoEHCCblocks,keepingtheexistingdataasis-altertablebarcompressforqueryhigh-altertableordersmodifypartitionp3compressforquerylow-EHCCcanbedisabled-altertablebarnocompress-altertablebarmovenocompress-Onlineredefinitionpackagecanbeusedforenabling/disablingEHCC202010OracleCorporationProprietaryandConfidentialTipsTips:分区:分区:分区:分区(Partition)(Partition)设计目的设计目的设计目的设计目的数据管理数据管理-Exchangedatain/out-Breakdownoperationsintosmallerpieces查询优化查询优化-Partitionpruning-Hashbasedjoinsandsorts212010OracleCorporationProprietaryandConfidentialTips Tips:数据仓库分区(:数据仓库分区(:数据仓库分区(:数据仓库分区(PartitionPartition)策略)策略)策略)策略一级分区:首先按日期对大表进行分区一级分区:首先按日期对大表进行分区-主要目标是启动分区修剪(PartitionPruning),简化数据管理-主要对于日期字段进行Range或interval分区-选择大部分查询查询用到的日期字段作为分区列-这个日期字段(用于分区列)应该是不易变(不被更新)二级子分区(二级子分区(Subpartition)可以按照:)可以按照:-Hash分区,更好地支持join和Sort-RANGE或LIST分区,更好的支持分区修剪(PartitionPruning)222010OracleCorporationProprietaryandConfidentialTips:Tips:Tips:Tips:定义合理的定义合理的定义合理的定义合理的HashHashHashHash分区数量分区数量分区数量分区数量Oracle推荐大的分区表使用推荐大的分区表使用Hash分区作为分区方法,为了保证数据在分区作为分区方法,为了保证数据在Hash Partition间均匀分布,间均匀分布,Hash分区的数量建议是分区的数量建议是2的指数幂,或者设置的指数幂,或者设置Partition数量为数量为CPU数量的数量的2倍。倍。然而每个然而每个hash Partition应该至少不小于应该至少不小于16MB。小于。小于16MB将在并行执行下不会有较好的扫描效率将在并行执行下不会有较好的扫描效率。首先考虑分区数是首先考虑分区数是2的整数幂的情况:当的整数幂的情况:当Oracle的分区数从的分区数从2个变为个变为4个,个,Oracle并不需要将所有数据重新打乱,而是将原有的并不需要将所有数据重新打乱,而是将原有的2个分区每个都一分个分区每个都一分为二。同样的道理,如果将分区数设置为为二。同样的道理,如果将分区数设置为8,Oracle会将原有的会将原有的4个分区个分区一分为二。一分为二。Oracle的的HASH分区就像是一棵大的二叉树。每个分区就相当于二叉树的分区就像是一棵大的二叉树。每个分区就相当于二叉树的一个叶节点。二叉树的第一层,只有一个根节点,对应只有一个叶节点。二叉树的第一层,只有一个根节点,对应只有1个分区的个分区的情况。二叉树的第二层,两个叶节点,对应情况。二叉树的第二层,两个叶节点,对应2个分区的情况。二叉树的个分区的情况。二叉树的第三层,第三层,4个叶节点,对应个叶节点,对应4个分区的情况。二叉树的第个分区的情况。二叉树的第n层,层,2(n-1)个叶个叶节点,对应节点,对应2(n-1)个分区情况。个分区情况。232010OracleCorporationProprietaryandConfidentialTipsTips:使用使用使用使用Partition-wise joinsPartition-wise joins对于两个大表关联操作,推荐使用partiton-wisejoins来减少并行进程间数据交换,减少查询的执行时间。对于使用对于使用full partition-wise join,两个关联的表必须是相,两个关联的表必须是相同的同的Partition键值(即两个表必须有相同的键值(即两个表必须有相同的Partition列、相同的列、相同的Partition方法、方法、相同的相同的Partition数量)数量)。如下是采用partiton-wisejoins的两个表关联的执行计划,Sales表和Customers表具有相同的并行度、HashPartition方法(Cust_id列作为HashPartitionKey)、Join列是PartitionKey。PartitionHashAllPartitionHashAllaboveabove在在JoinJoin方法之上,方法之上,说说明明这这是一个是一个partition-wisejoinpartition-wisejoin242010OracleCorporationProprietaryandConfidentialSELECT sum(amount_sold)FROM sales s,customer cWHERE s.cust_id=c.cust_id;Bothtableshavethesamedegreeofparallelismandarepartitionedthesamewayonthejoincolumn(cust_id)SalesSalesRangepartitionMay18th2008CustomerCustomerHashPartitionedSubpart1Alargejoinisdividedintomultiplesmallerjoins,eachjoinsapairofpartitionsinparallelPart1Subpart2Subpart3Subpart4Part2Part3Part4Subpart2Subpart3Subpart4Subpart1Part1Part2Part3Part4Partition Wise joinPartition Wise join对于partition-wisejoin而言,查询的并行度必须是等于或成倍于表分区的数量25SalesTableSalesTableSALES_Q3_1998SALES_Q3_1998SELECT sum(s.amount_sold)FROM sales sWHERE s.time_id BETWEENto_date(01-JAN-1999,DD-MON-YYYY)ANDto_date(31-DEC-1999,DD-MON-YYYY);Q:Whatwasthetotalsalesfortheyear1999?TipsTips:分区裁剪(:分区裁剪(:分区裁剪(:分区裁剪(Partition PruningPartition Pruning)SALES_Q4_1998SALES_Q4_1998SALES_Q1_1999SALES_Q1_1999SALES_Q2_1999SALES_Q2_1999SALES_Q3_1999SALES_Q3_1999SALES_Q4_1999SALES_Q4_1999SALES_Q1_2000SALES_Q1_2000Onlythe4relevantpartitionsareaccessedOnlythe4relevantpartitionsareaccessed26TipsTips:如何检查分区修剪是否生效:如何检查分区修剪是否生效:如何检查分区修剪是否生效:如何检查分区修剪是否生效SampleplanOnly4partitionsaretouched9,10,11,&12SALES_Q1_1999,SALES_Q2_1999SALES_Q1_1999,SALES_Q2_1999,SALES_Q3_1999SALES_Q3_1999,SALES_Q4_1999SALES_Q4_1999272010OracleCorporationProprietaryandConfidentialTableTablePartition1Partition5Partition10Sub-part1Sub-part1Sub-part2Sub-part2Sub-part1Sub-part1Sub-part2Sub-part2Sub-part1Sub-part1Sub-part2Sub-part2:129101920TipsTips:如何检查分区修剪是否生效:如何检查分区修剪是否生效:如何检查分区修剪是否生效:如何检查分区修剪是否生效SimpleQuery:SELECTCOUNT(*)FROMRHP_TABWHERECUST_ID=9255ANDTIME_ID=2008-01-01;Overallpartition#rangepartition#Sub-partition#282010OracleCorporationProprietaryandConfidential提纲提纲提纲提纲数据库空间管理数据库空间管理数据仓库物理表设计(表压缩、表分区)数据仓库物理表设计(表压缩、表分区)数据加载数据加载并行执行并行执行开发注意事项(集合、关联操作)开发注意事项(集合、关联操作)索引管理索引管理统计信息收集统计信息收集292010OracleCorporationProprietaryandConfidentialTipsTips:使用使用使用使用External TableExternal Table进行数据加载进行数据加载进行数据加载进行数据加载Oracle推荐使用推荐使用External Table方式加载数据,而不第一推荐方式加载数据,而不第一推荐SQL*Loader,因为,因为SQL*Loader做并行数据加载时,数据首先被加载到做并行数据加载时,数据首先被加载到TEMP Extent中,只有在中,只有在transaction 被被Commit时,时,Temp Extent会被合并到实体表的会被合并到实体表的段(段(Segment)中,而在原来表中的部分满的)中,而在原来表中的部分满的Extent(partially full extents)会被跳过,所以到导致空间浪费和性能浪费。所以对于大量)会被跳过,所以到导致空间浪费和性能浪费。所以对于大量加载的加载的Partition表,这样可能会导致较大的空间浪费情况。表,这样可能会导致较大的空间浪费情况。采用采用External Table方式加载时,会有如下好处:方式加载时,会有如下好处:-FullusageofSQLcapabilitiesdirectlyonthedata-Automaticuseofparallelcapabilities-Noneedtostagethedataagaininthedatabase-Betterallocationofspacewhenstoringdata-Highwatermarkbrokering-Autoallocate tablespace will trim extents after the load-Additionalcapabilitieslike-Theusageofdatapumpfiles-Theusageofpre-processing302010OracleCorporationProprietaryandConfidentialExternal Table External Table 312010OracleCorporationProprietaryandConfidentialTipsTips:External TableExternal Table预处理预处理预处理预处理允许文件在加载过程中被自动化预处理允许文件在加载过程中被自动化预处理-例如:对压缩文件进行解压缩、排序等预处理不支持对文件的自动的小颗粒化预处理不支持对文件的自动的小颗粒化-需要提供多份文件,文件的数量决定了处理的并行度需要授权对目录的读和执行的权限(需要授权对目录的读和执行的权限(Grant read,execute privileges directories)CREATE TABLE sales_external()ORGANIZATION EXTERNAL(TYPE ORACLE_LOADER DEFAULT DIRECTORY data_dir1 ACCESS PARAMETERS (RECORDS DELIMITED BY NEWLINE PREPROCESSOR exec_dir:gunzip OPTIONS-c FIELDS TERMINATED BY|)LOCATION();322010OracleCorporationProprietaryandConfidentialTipsTips:直接路径加载(:直接路径加载(:直接路径加载(:直接路径加载(Direct Path LoadDirect Path Load)在每次在每次IO异步请求时,数据被直接写入数据库存储异步请求时,数据被直接写入数据库存储CTAS 语句总是使用语句总是使用 Direct Path 在在Insert As Select 语句中使用语句中使用 APPEND暗示方法也是暗示方法也是Direct PathInsert/*+APPEND*/intoSalespartition(p2)Select*Fromext_tab_for_sales_data;在一个对象上,只有一个在一个对象上,只有一个direct path 操作能够起作用操作能够起作用-通过指定一个表的分区表的名字方法,可以同时将多个DirectPach加载操作到一个表332010OracleCorporationProprietaryandConfidentialTipsTips:并行加载(:并行加载(:并行加载(:并行加载(Parallel LoadParallel Load)为了确保为了确保Direct Path加载成为并行操作,需要通过如下加载成为并行操作,需要通过如下方式:方式:-在Hint中指定并行度、或者在表上指定并行度-通过AlterSession语句启动会话级并行当并行度被指定后,当并行度被指定后,CTAS 会自动并行化加载会自动并行化加载IAS 不会自动并行化,他需要不会自动并行化,他需要parallel DML的支持:的支持:ALTERSESSIONENABLEPARALLELDML;342010OracleCorporationProprietaryandConfidentialTipsTips:使用使用使用使用Parallel direct path Parallel direct path 数据加载数据加载数据加载数据加载使用使用“direct path load”可以带来很好的数据加载性能,因为数据会绕过可以带来很好的数据加载性能,因为数据会绕过Buffer Cache,直接写入数据库存储。,直接写入数据库存储。CTAS总会使用总会使用“direct path load”,但是,但是Insert As Select(IAS)并不是总会使用并不是总会使用“direct path load”,为了使,为了使IAS使用使用“direct path load”,需要在,需要在IAS中加入中加入APPEND hint,SQL如下:如下:Insert/*+APPEND*/intoSalespartition(p2)Select*Fromext_tab_for_sales_data;ALTERSESSIONENABLEPARALLELDML;Insert/*+APPEND*/intoSalespartition(p2)Select*fromext_tab_for_sales_data;为了让为了让“direct path load”以并行方式运行,可以以下两种方式设置并行度:以并行方式运行,可以以下两种方式设置并行度:1)在)在CTAS和和IAS中加入中加入PARALLEL hint;2)在)在External table和目标加载和目标加载Table上,上,设置设置PARALLEL子句。一旦设置了并行度,子句。一旦设置了并行度,CTAS将自动执行并行化的将自动执行并行化的“direct path load”,而,而IAS将不会。为了让将不会。为了让IAS能够并行化执行能够并行化执行“direct path load”,出了,出了设置并行度外,还必须通过设置并行度外,还必须通过alter the session to enable parallel DML。SQL如下:如下:352010OracleCorporationProprietaryandConfidentialTipsTips:在数据加载时,对于常访问的字段,可以进行排序,以在数据加载时,对于常访问的字段,可以进行排序,以在数据加载时,对于常访问的字段,可以进行排序,以在数据加载时,对于常访问的字段,可以进行排序,以便增加便增加便增加便增加Storage indexStorage index的效率的效率的效率的效率对在使用对在使用 INSERT/*+APPEND*/做数据加载时,可以对查询中做数据加载时,可以对查询中Where条条件中使用较多的列进行件中使用较多的列进行Order By排序,以便增加数据压缩率和排序,以便增加数据压缩率和Storage index查询效率。查询效率。Selectname,value/1024/1024asstat_valuefromv$mystats,v$statnamenWhereS.Statistic#=n.statistic#andnamelike%cellphysical%Insertintotableaselect*fromext_tableaorderbycol1,col2可以通过查询可以通过查询v$mystat,v$statname视图,通过看视图,通过看cell physical I0 bytes saved by storage index统计值,来检查多少统计值,来检查多少I/O被减少。被减少。SQL如
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服