动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.和权限有关的表介绍.
.Oracle提供标准函数,对字符集名.
.Oracle 9i数据库服务器的体系结构.
.用sql比较两个数据库是否一致.
.详细讲解如何将数据模型转换成数.
.说一说Oracle的优化器(Optimizer).
.Orcale与Asp.net的端口冲突.
.优化Oracle数据 获取角斗士般的性.
.内部错误,hostdef扩展名不存在.
.Oracle DBA 逻辑备份试题选.
./initrd目录的作用和当删除时出现.
.Ruby on Rails之Oracle应用.
.查出别人如何建表的语句.
.Oracle数据库中分区表的操作方法.
.Oracle数据库应用系统调优方法介.
.数据库管理:Oracle 缓冲区忙等待.
.使用v$session视图查看进程的详细.
.用Linux完成Oracle自动物理备份.
.Oracle和MySQL的一些简单命令对比.
.SQLServer和Oracle的常用函数对比.

计算LMT表空间的大小该怎么建是最优的

发表日期:2008-2-9 |


1。使用LMT时,不更新数据字典,不产生回滚活动。
  2。自动跟踪相邻的自由空间,不需要合并盘区。
  3。通过更新自由块和已用块的位映射来治理空间,避免了递归的空间治理操作。
  4。有UNIFORM和AUTOALLOCATE两种指定盘区大小方法,缺省为AUTOALLOCATE
  5。临时表空间用LMT治理则仅仅只能用UNIFORM分配方式
  6。针对LMT,NEXT, PCTINCREASE, MINEXTENTS, MAXEXTENTS, and DEFAULT STORAGE 将不再起作用
  7。用UNIFORM指定一个值,表示盘区大小,缺省是1M,而对AUTOALLOCATE,你只要指定一个初始盘区的大小,Oracle会自动用一个最佳值为其他盘区指定大小,最小是64KB,这也是固定表空间中系统治理的缺省盘区大小。
  这里我还不明白,这是说ORACLE为其他的盘区分配的盘区大小是不定的但最小是64Kb,不知这个理解对不对。那么初始盘区该设多大呢?最小也是64KB吧。如此说AUTOALLOCATE方式比UNIFORM方式更好吗?
  
  盘区的分配:
  ORACLE首先在第一个属于这个表空间的数据文件中分配一个新的盘区,先为需要的相邻自由块数目在这个数据文件中查找位映射(BITMAP),假如这个数据文件没有足够的自由块数目,ORACLE则查找下一个数据文件。当这个盘区释放了,ORACLE修改数据文件的位映射。
  
  位映射治理:
  假设指定的一个盘区大小是256KB,一个数据块的大小是4KB,则
  256/4=64,表示位映射中的每一位都表示64块。
  
  我的环境是WIN2000+ORACLE817, db_block_size=4096
  
  问题一:理解BITMAP治理
  1。首先建立表空间
  SYS@ORAEXP:ADMIN> create tablespace abc datafile 'd:\oracle817\oradata\oraexp\abc.dbf' size
  2 1000k extent management local uniform size 40k;
  
  2.立即查看DBA_FREE_SPACE
  SYS@ORAEXP:ADMIN> select * from dba_free_space where tablespace_name='ABC';
  
  TABLESPACE_NAME  FILE_ID  BLOCK_ID   BYTES   BLOCKS
  ------------------------------ ---------- ---------- ---------- ----------
  RELATIVE_FNO
  ------------
  ABC              15       17      942080    230
  15
  
  这里看到block_id=17,说明已经使用了16块,这16块就是给这个数据文件分配的BITMAP使用的,16*4=64KB,
  另外,我们建立这个表空间是1000KB,也就是250块,但现在只有230块,加上已用的16块,也只有246块,还有8块到哪里去了?因为一个盘区是40/4=10个块,8个块还不能构成一个盘区,所以被浪费了。这就是为什么上面说的在建立表空间数据文件是要在数据文件大小上再加上64K的原因了。
  再看看效果:
  SYS@ORAEXP:ADMIN> create tablespace abc_1 datafile 'd:\oracle817\oradata\oraexp\abc_1.dbf'
  2 size 1064k extent management local uniform size 40k;
  
  SYS@ORAEXP:ADMIN> select * from dba_free_space where tablespace_name='ABC_1';
  
  TABLESPACE_NAME  FILE_ID  BLOCK_ID   BYTES   BLOCKS
  ------------------------------ ---------- ---------- ---------- ----------
  RELATIVE_FNO
  ------------
  ABC_1             16     17    1024000     250
  16
  
  只要加上64K,就能救回很多空间来!!!
  
  问题2:盘区的分配:
  建立一张表:
  SYS@ORAEXP:ADMIN> CREATE TABLE ABC(A VARCHAR2(10)) TABLESPACE ABC STORAGE
  2 (INITIAL 20K NEXT 20K );
  
  SYS@ORAEXP:ADMIN> SELECT* FROM DBA_FREE_SPACE WHERE TABLESPACE_NAME='ABC';
  
  TABLESPACE_NAME  FILE_ID  BLOCK_ID   BYTES   BLOCKS
  ------------------------------ ---------- ---------- ---------- ----------
  RELATIVE_FNO
  ------------
  ABC             15     27   901120    220
  15
  
  可见并没有按照建表定义里的参数INITIAL来分配表空间,而是按照定义的UNIFORM SIZE来分配盘区的。
  
  假如定义INITIAL参数大于UNIFORM SIZE 定义呢?
  先DROP 表 ABC 恢复到表空间ABC初始定义的状态。
  再重建表ABC
  SYS@ORAEXP:ADMIN> CREATE TABLE ABC(A VARCHAR2(10)) TABLESPACE ABC STORAGE
  2 (INITIAL 100K NEXT 100K);
  
  SYS@ORAEXP:ADMIN> SELECT * FROM DBA_FREE_SPACE WHERE TABLESPACE_NAME='ABC';
  
  TABLESPACE_NAME   FILE_ID  BLOCK_ID   BYTES   BLOCKS
  ------------------------------ ---------- ---------- ---------- ----------
  RELATIVE_FNO
  ------------
  ABC              15     47   819200    200
  15
  
  分配30块,也就是120KB,因为建表是定义INITIAL是100KB,按照UNIFORM SIZE 40K 只能分配120KB才能满足。
  
  再让表扩展一个盘区
  SYS@ORAEXP:ADMIN> ALTER TABLE ABC ALLOCATE EXTENT;
  
  表已更改。
  SYS@ORAEXP:ADMIN> SELECT * FROM DBA_FREE_SPACE WHERE TABLESPACE_NAME='ABC';
  
  TABLESPACE_NAME   FILE_ID  BLOCK_ID   BYTES   BLOCKS
  ------------------------------ ---------- ---------- ---------- ----------
  RELATIVE_FNO
  ------------
  ABC               15     57   778240    190
  15
  
  看出只用了10块,也就是40KB,还是按照UNIFORM SIZE 40K分配的,并没有使用建表里NEXT 100KB参数。
  
  SYS@ORAEXP:ADMIN> L
  1 SELECT INITIAL_extent,next_extent,min_extentS,max_extentS from dba_segmentS
  2* where segment_name='ABC'
  SYS@ORAEXP:ADMIN> /
  
  INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS
  -------------- ----------- ----------- -----------
  102400    40960      1 2147483645
  
  这里就可以看到ABC表的初始盘区是100KB,具体盘区分配:
  
  SYS@ORAEXP:ADMIN> select extent_id,file_id,block_id,bytes,blocks from
  2 dba_extents where segment_name='ABC';
  
  EXTENT_ID  FILE_ID  BLOCK_ID   BYTES   BLOCKS
  ---------- ---------- ---------- ---------- ----------
  0     15     17   40960     10
  1     15     27   40960     10
  2     15     37   40960     10
  3     15     47   40960     10
  
  得到结论:
  1。建LMT表空间时,考虑在建立的数据文件大小上再加64KB
  2。对于LMT表空间,建表STORAGE里的参数基本没什么用处了,仅仅是在第一次分配时参考INITIAL和NEXT参数分配空间,实际还是按照UNIFORM SIZE来分配盘区。EXP/IMP时应该避免使用COMPRESS=Y参数,否则初始盘区会很大的。
  
  要做到准确的性能测试,其实是很复杂的。
  
  一般而言,虽然LMT的表空间不会比DICT的表空间性能上强很多,但是不会更差 的。
  
  你要做性能的对比测试,应该给他们完全相等的条件。
  
  比如,你第一次已经做了测试,做了大量的数据插入,但是在第二次做测试的时候,可能就会出现ckpt 不能完成的情况。这样一来,第二次的性能数据肯定会大大打折扣的。
  至于空间治理,我现在的,基本上都采用了LMT + Uniform 的大小,按照表的增长和大
  
  小来划分不同的表空间。
  基本上不再区分索引和表了。
  
  

上一篇:如何在Oracle中用PL/SQL产生随即数 人气:469
下一篇:ORACLE的几个常见小问题的详细解答 人气:647
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 HDWiki v4.0.1 bulid 081007 UTF
2008-10-7 迅易评选投票管理系统 v10.0
2008-10-7 HDWiki v4.0.1 bulid 081007 GBK
2008-10-7 Bitrac单用户博客 v1.14 bulid 0
2008-10-7 OpenX(广告管理系统) v2.6.2 多国
2008-10-7 乐铺网店系统免费普及版 v3.41
2008-9-29 酷狗音乐(原KuGoo)2008 v5.310 正
2008-9-29 QQTab 1.1
2008-9-29 网络传送带 Net Transport 2.64a
2008-9-29 谷歌金山词霸v1.8
2008-9-29 TweakVI 1.0 Build 1090
2008-9-29 ACDSee Pro 2.5 Build 333 汉化绿
2008-9-29 Winamp v5.541(2189) 周明波简体
2008-9-27 CCleaner 2.12.651
2008-9-27 Mozilla Thunderbird 2.0.0.17 英
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成