`

TableSpace介绍

阅读更多
简介
  TableSpace是Oracle空间管理上的逻辑单位,实体上存放数据的是Tablespace里面的档案(Data File);而我们所熟悉的Table就放在这一个一个的档案里面。所以TableSpace可以看成是Data File的群组。通常在管理上会把用户的数据与Oracle系统的对象以不同的Tablespace做切分。如果一个Oracle上有多个不同的AP系统,以不同的TableSpace做切割,则可以达到管理与备份的目的。但是TableSpace的功用也不仅仅只是简单的群组分类而已,Oracle提供了许多功能上的参数来设定TableSpace来达到空间管理与效能增进的目的。

  有必要提的是,TableSpace没办法跨数据库,TableSpace中的Data File没办法跨TableSpace,Data File中的Table (Segement)可以跨Data File,但不能跨TableSpace。简单的来说,一个Table里面的数据是有可能因为Oracle的空间分配而分布在同一个TableSpace的不同的Data File中的;因此一个Data File创出来后,是不能随便删除的,这将会造成严重的数据损毁的问题。



SYSTEM与Non-SYSTEM TableSpace
  当数据库刚建立起来,系统会建立一个叫做SYSTEM的系统TableSpace,存放SYS、SYSTEM等User重要的系统数据(ex:数据字典与预储程序等)如果我们建立Oracle User时,不指定预设的TableSpace,则此User则会以SYSTEM TableSpace作为预设的TableSpace。这将造成管理上的混乱与严重的效能问题,这是必须特别注意的。



TableSpace的类型:Permanent、Undo、Temporary
§ Permanent Tablespace

  一般我们创建给AP使用的都是Permanent Tablespace。里面对象的生命周期不会随着交易或者用户的session结束而消失。


§ 

§ Undo Tablespace

  Undo Tablespace是系统用的特殊的Tablespace,用来取代过去的rollback segement的机制,主要的功用是提供用户修改数据未commit之前的read consistency的功能以及rollback交易的功能。也因为undo tablespace主要是取代过去的rollback segement的机制,所以不能存放其他种类的segement。undo tablespace只能是local managed。


§ 

§ Temporary Tablespace

  Temporary Tablespace也是系统用的特殊的Tablespace。当使用者需要做排序时,有时就会使用Temporary Tablespace,因此里面的Segement的生命周期都很短,可能交易结束或者User的Session结束就会消失。每个系统都必须要有一个预设的Temporary Tablespace(Default Temporary Tablespace),如果没有的话,忘了指定使用哪个Temporary Tablespace的使用者会以SYSTEM tablespace来当作Temporary Tablespace,这样就很糟糕。以下列出几个Temporary Tablespace的特性。

1.    Temporary Tablespace是NOLOGGING模式,因此若数据库损毁,做Recovery不需要恢复Temporary Tablespace。

2.    Temporary最好是使用Local managed Tablespace

3.    若使用local managed模式,UNIFORM. SIZE参数最好是Sort_Area_Size的参数,这样效能比较好。

4.    Uniform. size预设1024K,而Sort_area_size预设是512K

5.    Temporary Tablespace不能使用local managed的AUTOALLOCATE参数。





TableSpace的Extent空间管理:Local Managed与Dictionary Managed
  Local Managed与Dictionary Managed最主要的分别,在于空间管理方式的不同。Local managed的管理方式是让每个TableSpace自己利用bitmaps去管理他自己的空间,而Dictionary Managed则是利用SYSTEM TableSpace的数据字典来做空间管理。这两者最大的不同在于Local managed大大的改善了Oracle做空间管理(例如:产生新的Exten或释放Extent...等)时,抢夺SYSTEM TableSpace资源的问题。所以Oracle从8i以后已经朝Local managed的方向去走了,所以我们应该尽量使用Local managed的方式才对,所以Dictionary managed的方式不多做介绍了。

§ Local managed tablespace

1.    Local managed使用bitmaps做空间管理。

2.    bitmaps中每个bit代表一个data block或者一堆相邻的data block(extent)

3.    从10g开始,SYSTEM Tablespace预设使用local managed-->Oracle建议使用local managed的证据。

4.    假如SYSTEM TableSpace是local managed,那么其他TableSpace必须是local managed。

5.    若没指定使用local managed或者dictionary managed,则预设使用local managed。

6.    使用local managed可以增进效能,因为减少了SYSTEM TableSpace的效能竞争。

7.    使用local managed则不需要做空间缝合(loalescing),因为相邻的不同大小的extent,辨识extent使用状态的bits也在一起,Oracle可以直接使用这些相邻的extent。不需要先进行缝合才可以使用。这也可以增进部份效能。




§ local managed的extent空间管理(Extent Management):AUTOALLOCATE与UNIFORM

  AUTOALLOCATE与UNIFORM这两个参数,是用来设定Local managed的extent大小的参数。AUTOALLOCATE是让Oracle自己来决定extent的大小;而UNIFORM则是强制规定TableSpace中extent的为固定的大小。通常若你明确的知道extent必须多大,才会使用UNIFORM,使用UNIFORM的好处是每个extent的大小都相同,不会产生空间破碎的问题。但是如果无法预知extent必须多大,使用AUTOALLOCATE会比较好,让Oracle自己决定使用extent的大小,可以比较符合实际的需求,因此会比较节省空间,但是这可能会产生部分空间破碎的问题。使用AUTOEXTENT,Oracle会使用的extent大小为64k、1M、8M、64M。根据我系统上使用的结果,99.95%的extent都是使用64k、只有少部分使用1M的extent,所以其实破碎的情况不严重,使用AUTOALLOCATE在我的系统上其实就够用了。想知道你的TableSpace所使用的Extent有几种,请用下列的语法:

Select bytes,count(*) from dba_extents where tablespace_name='your_tablespace_name' group by bytes


§ 

§ Local managed中的Segment的空间管理(Segment Space Management ):AUTO与MANUAL

  Tablespace中的Segment的空间管理上,可以设置的参数为AUTO与MANUAL。MANUAL是使用我们熟悉的PCTUSED、FREELISTS、FREELIST GROUPS的方式来管理Segment中的data block;而AUTO则是使用bitmaps来管理data block。使用AUTO来管理的话,以往create tablespace或create table时设定的storage的参数设定都不需要再设定了,因为data block的管理已经是bitmaps了,不再是free list了。如果没有特别的需求话,使用AUTO会比使用MANUAL有更好的空间利用率,与效能上的提升。


§ 

§ Local managed中的Create TableSpace范例

Create Tablespace MYDATA
Datafile '/u1/oradata/mydb/mydata1.dbf' size 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED ,
          '/u1/oradata/mydb/mydata2.dbf' size 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
Extent ManagementLocal
Segment Space ManagementAuto;


§ 

§ dictionary managed中的Create TableSpace范例

Create Tablespace MYDATA
Datafile '/u1/oradata/mydb/mydata1.dbf' size 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
Extent ManagementDictionary
Default Storage(
Initial 64k
next 64k
minextents 2
maxextents unlimited
pctincrease 0 );



分享到:
评论

相关推荐

    2000-2021年中国科技统计年鉴(分省年度)面板数据集-最新更新.zip

    2000-2021年中国科技统计年鉴(分省年度)面板数据集-最新更新.zip

    PPT保护工具PDFeditor专业版-精心整理.zip

    PPT保护工具PDFeditor专业版-精心整理.zip

    Spring Boot Docker 项目:含项目构建、镜像创建、应用部署及相关配置文件,容器化部署.zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。

    考研英语真题及详解-精心整理.zip

    考研英语真题及详解-精心整理.zip

    Jupyter_AI 人工智慧開發入門.zip

    Jupyter-Notebook

    全国电子地图行政区划道路水系数据-最新shp.zip

    全国电子地图行政区划道路水系数据-最新shp.zip

    Spring Cloud Function RCE 漏洞的 POC 项目,含漏洞利用及相关测试内容.zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。

    地级市进出口贸易及外资利用数据(297城)-最新.zip

    地级市进出口贸易及外资利用数据(297城)-最新.zip

    HengCe-18900-2024-2030中国皮革制品市场现状研究分析与发展前景预测报告-样本.docx

    HengCe-18900-2024-2030中国皮革制品市场现状研究分析与发展前景预测报告-样本.docx

    java制作的小游戏,作为巩固java知识之用.zip

    猪脚饭超好吃 java制作的小游戏,作为巩固java知识之用.zip

    基于python的大麦网自动抢票工具的设计与实现(1) - 副本.zip

    【基于Python的大麦网自动抢票工具的设计与实现】 随着互联网技术的发展,网络购票已经成为人们生活中不可或缺的一部分。尤其是在文化娱乐领域,如音乐会、演唱会、戏剧等活动中,热门演出的门票往往在开售后瞬间就被抢购一空。为了解决这个问题,本论文探讨了一种基于Python的自动抢票工具的设计与实现,旨在提高购票的成功率,减轻用户手动抢票的压力。 Python作为一种高级编程语言,因其简洁明了的语法和丰富的第三方库,成为了开发自动化工具的理想选择。Python的特性使得开发过程高效且易于维护。本论文深入介绍了Python语言的基础知识,包括数据类型、控制结构、函数以及模块化编程思想,这些都是构建抢票工具的基础。 自动化工具在现代社会中广泛应用,尤其在网络爬虫、自动化测试等领域。在抢票工具的设计中,主要利用了自动化工具的模拟用户行为、数据解析和定时任务等功能。本论文详细阐述了如何使用Python中的Selenium库来模拟浏览器操作,通过识别网页元素、触发事件,实现对大麦网购票流程的自动化控制。同时,还讨论了BeautifulSoup和requests库在抓取和解析网页数据中的应用。 大麦网作为国内知名的票务平台,其网站结构和购票流程对于抢票工具的实现至关重要。论文中介绍了大麦网的基本情况,包括其业务模式、用户界面特点以及购票流程,为工具的设计提供了实际背景。 在系统需求分析部分,功能需求主要集中在自动登录、监控余票、自动下单和异常处理等方面。抢票工具需要能够自动填充用户信息,实时监控目标演出的票务状态,并在有票时立即下单。此外,为了应对可能出现的网络延迟或服务器错误,工具还需要具备一定的错误恢复能力。性能需求则关注工具的响应速度和稳定性,要求在大量用户同时使用时仍能保持高效运行。 在系统设计阶段,论文详细描述了整体架构,包括前端用户界面、后端逻辑处理以及与大麦网交互的部分。在实现过程中,采用了多线程技术以提高并发性,确保在抢票关键环节的快速响应。此外,还引入了异常处理机制,以应对网络故障或程序错误。 测试与优化是确保抢票工具质量的关键步骤。论文中提到了不同场景下的测试策略,如压力测试、功能测试和性能测试,以验证工具的有效性和稳定性。同时,通过对抢票算法的不断优化,提高工具的成功率。 论文讨论了该工具可能带来的社会影响,包括对消费者体验的改善、对黄牛现象的抑制以及可能引发的公平性问题。此外,还提出了未来的研究方向,如增加多平台支持、优化抢票策略以及考虑云服务的集成,以进一步提升抢票工具的实用性。 本论文全面介绍了基于Python的大麦网自动抢票工具的设计与实现,从理论到实践,从需求分析到系统优化,为读者提供了一个完整的开发案例,对于学习Python编程、自动化工具设计以及理解网络购票市场的运作具有重要的参考价值。

    校园驿站全天候辅助取货管理系统 SSM毕业设计 附带论文.zip

    校园驿站全天候辅助取货管理系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B

    1970年至2010年美国所有乳制品的供应和利用情况

    1970年至2010年美国所有乳制品的供应和利用情况

    java-leetcode题解之Possible Bipartition.java

    java基础 java_leetcode题解之Possible Bipartition.java

    基于Java开发的阿里巴巴数据库事业部druid连接池设计源码

    该开源项目为阿里巴巴数据库事业部精心打造的druid连接池设计源码,包含4689个文件,涵盖4069个Java源文件、297个SQL脚本、102个文本文件以及其他多种文件类型。druid连接池以其独特的监控功能,旨在为数据库连接管理提供高效、可靠的解决方案。项目文件类型丰富,包括HTML、JavaScript、CSS和Shell脚本等,适用于多种开发需求。

    Jupyter_一个不会自学的人是没有前途的.zip

    Jupyter-Notebook

    金融风险管理计算手册(CoVaR)最新版.zip

    金融风险管理计算手册(CoVaR)最新版.zip

    网上选课系统 SSM毕业设计 附带论文.zip

    网上选课系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B

    腾讯word2vec模型缩小版.zip

    Jupyter-Notebook

    Jupyter_推荐系统入门教程在线阅读地址.zip

    Jupyter-Notebook

Global site tag (gtag.js) - Google Analytics