【TechTarget中国原创】问:我现在正从8i(块大小为8K)迁移到9i(块大小为16K)。
1、T1, T2, T3, T4, LARGE, MEDIUM以及SMALL减少浪费空间的最佳统一大小是多少?
2、我还想知道LMT范围内的扩展大小(如16K块大小:1024 / 2 = 512)。
3、你是如何决定的?中心观点是什么?
前四张表会经常被访问到,并且我还想将每张表放在它们各自的表空间里。
BYTES AVGROW NUMROWs T01 2934046720 351 6927068 T02 1357619200 40 25814396 T03 1305518080 186 4678146 T04 658841600 90 5380288 LARGE UNIFORM SZ ? T05 293068800 31 5946303 T06 293068800 36 4567866 T06 182804480 23 4820931 T08 121978880 24 3196038 T09 82739200 31 1554056 T10 59023360 27 1474153 T11 50913280 27 1477840 MEDIUM UNIFORM SZ? T12 17612800 53 264330 T13 17530880 64 183504 T14 15892480 37 359238 T15 6184960 135 36074 T16 5283840 32 104411 T17 3932160 196 15484 T18 3481600 32 83276 T19 1597440 29 45335 T20 1597440 127 9813 SMALL UNIFORM SZ ? T21 737280 28 19545 T22 286720 25 8158 T23 245760 278 677 T24 81920 35 1071 T25 81920 61 480 T26 81920 33 969 T27 40960 89 171 |
答:要改变你的块大小,你就必须用到Oracle导入导出工具来进行迁移。所以导出你目前的Oracle 8i数据库到dump文件。然后重建9i数据库(或者有可能的话直接到10g),这次的块大小为16K。 在你用新的块大小创建9i数据库之后,预先创建表空间存储数据。在你创建表空间时, 让本地管理表空间(Locally Managed Tablespaces)和Oracle自动为你决定扩展大小。以下是一个示例:
CREATE TABLESPACE users DATAFILE '/u01/orcl/users01.dbf' SIZE 100M EXTENT MANAGEMENT LOCAL AUTOALLOCATE; |
在使用AUTOALLOCATE时,Oracle将决定为你决定最佳范围大小。因为我这些年以来一直在用AUTOALLOCATE,所以我还不能简单地说出我数据库最佳范围大小。我以前就没有指定范围大小,也从来没有回头看过。