`
xuechenyoyo
  • 浏览: 56957 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【引用】表空间的应用

阅读更多
【引用】-http://www.fjddbbs.com/thread-15139-1-3.html
【引用】-http://sh.edu51.net/html/diannaokecheng/diannaoITxuexiziliao/20090128/22689.html

表空间容量查看 脚本
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name

表空间使用情况查看:
SELECT a.tablespace_name "表空间名",total 表空间大小,free 表空间剩余大小,
(total-free) 表空间使用大小,
ROUND((total-free)/total,4)*100 "使用率 %"
FROM  (SELECT tablespace_name,SUM(bytes) free FROM DBA_FREE_SPACE
GROUP BY tablespace_name ) a,
(SELECT tablespace_name,SUM(bytes) total FROM DBA_DATA_FILES
GROUP BY tablespace_name) b
WHERE a.tablespace_name=b.tablespace_name

这两个脚本联合使用可以了解数据占有的存储空间情况.


SQL Server数据库与Oracle数据库之间最大的区别要属表空间设计。Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献。可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的。
  典型应用一:控制用户所占用的表空间配额。
  在一些大型的数据库应用中,我们需要控制某个用户或者某一组用户其所占用的磁盘空间。这就好像在文件服务器中,需要为每个用户设置磁盘配额一样,以防止硬盘空间耗竭。所以,在数据库中,我们也需要限制用户所可以使用的磁盘空间大小。为了达到这个目的,我们就可以通过表空间来实现。
  我们可以在Oracle数据库中,建立不同的表空间,为其设置最大的存储容量,然后把用户归属于这个表空间。如此的话,这个用户的存储容量,就受到这个表空间大小的限制。
  典型应用二:控制数据库所占用的磁盘空间。
  有时候,在Oracle数据库服务器中,可能运行的不止一个服务。除了数据库服务器外,可能还有邮件服务器等应用系统服务器。为此,就需要先对 Oracle数据库的磁盘空间作个规划,否则,当多个应用程序服务所占用的磁盘空间都无限增加时,最后可能导致各个服务都因为硬盘空间的耗竭而停止。所以,在同一台服务器上使用多个应用程序服务,我们往往需要先给他们进行磁盘空间的规划和分配。各个服务都不能够超过我们分配给他的最大限额,或者超过后及时的提醒我们。只有这样,才能够避免因为磁盘空间的耗竭而导致各种应用服务的崩溃。
  典型应用三:灵活放置表空间,提高数据库的输入输出性能。
  数据库管理员还可以将不同类型的数据放置到不同的表空间中,这样可以明显提高数据库输入输出性能,有利于数据的备份与恢复等管理工作。因为我们数据库管理员在备份或者恢复数据的时候,可以按表空间来备份数据。如在设计一个大型的分销系统后台数据库的时候,我们可以按省份建立表空间。与浙江省相关的数据文件放置在浙江省的表空间中,北京发生业务记录,则记录在北京这个表空间中。如此,当浙江省的业务数据出现错误的时候,则直接还原浙江省的表空间即可。很明显,这样设计,当某个表空间中的数据出现错误需要恢复的时候,可以避免对其他表空间的影响。
  另外,还可以对表空间进行独立备份。当数据库容量比较大的时候,若一下子对整个数据库进行备份,显然会占用比较多的时间。虽然说Oracle数据库支持热备份,但是在备份期间,会占用比较多的系统资源,从而造成数据库性能的下降。为此,当数据库容量比较大的时候,我们就需要进行设置多个表空间,然后规划各个表空间的备份时间,从而可以提高整个数据库的备份效率,降低备份对于数据库正常运行的影响。
 典型应用四:大表的排序操作。
  我们都知道,当表中的记录比较多的时候,对他们进行查询,速度会比较慢。第一次查询成功后,若再对其进行第二次重新排序,仍然需要这么多的时间。为此,我们在数据库设计的时候,针对这种容量比较大的表对象,往往把它放在一个独立的表空间,以提高数据库的性能。
  典型应用五:日志文件与数据文件分开放,提高数据库安全性。
  默认情况下,日志文件与数据文件存放在同一表空间。但是,这对于数据库安全方面来说,不是很好。所以,我们在数据库设计的过程中,往往喜欢把日志文件,特别是重做日志文件,放在一个独立的表空间中,然后把它存放在另外一块硬盘上。如此的话,当存放数据文件的硬盘出现故障时,能够马上通过存放在另一个表空间的重做日志文件,对数据库进行修复,以减少企业因为数据丢失所带来的损失。
  当然,表空间的优势还不仅仅这些,企业对于数据库的性能要求越高,或者数据库容量越大,则表空间的优势就会越大。
  下面,我们就具体来看看Oracle数据库中表空间的处理方式,看其在性能与安全性方面是否有足够的优势与SQL Server数据库抗衡。
  在数据库设计的时候,我们建议数据库管理员按如下顺序设置表空间。  
  第一步:建立表空间。
  在设计数据库的时候,首先需要设计表空间。我们需要考虑,是只建立一个表空间呢,还是需要建立多个表空间,以及各个表空间的存放位置、磁盘限额等等。
  到底设计多少个表空间合理,没有统一的说法,这主要根据企业的实际需求去判断。如企业需要对用户进行磁盘限额控制的,则就需要根据用户的数量来设置表空间。当企业的数据容量比较大,而其又对数据库的性能有比较高的要求时,就需要根据不同类型的数据,设置不同的表空间,以提高其输入输出性能。
  第二步:建立用户,并制定用户的默认表空间。
  在建立用户的时候,我们建议数据库管理员要指定用户的默认表空间。因为我们在利用CREATE语句创建数据库对象,如数据库表的时候,其默认是存储在数据库的当前默认空间。若不指定用户默认表空间的话,则用户每次创建数据库对象的时候,都要指定表空间,显然,这并不是很合理。
  另外要注意,不同的表空间有不同的权限控制。用户对于表空间A具有完全控制权限,可能对于表空间B就只有查询权限,甚至连连接的权限的都没有。所以,合理为用户配置表空间的访问权限,也是提高数据库安全性的一个方法。
分享到:
评论

相关推荐

    四川大学计算机学院-数据结构与算法分析高分实验报告-引用数使用空间表法广义表存储结构.rar

    本实验报告集中于一个特定的主题——引用数的使用,结合空间表法和广义表的存储结构,这些都是在高级编程和系统设计中至关重要的概念。 首先,让我们详细探讨“引用数”。在计算机科学中,引用数(或称为计数器)...

    c++中引用的用法和应用实例

    因此,引用本身不占用存储空间,对引用的操作会直接影响到原始变量。 4. 引用与地址:引用的地址与它所引用的变量的地址相同,例如`&ra == &a`。 5. 不支持数组引用:C++不允许直接声明数组的引用,但可以对数组...

    国土空间基础信息平台应用规范

    国土空间基础信息平台应用规范是针对信息化建设中的一个重要领域——国土空间规划与管理所制定的标准。这一规范主要关注的是软件/插件在国土空间基础信息处理中的应用,旨在提高国土空间数据的处理效率、准确性和...

    oracle创建表空间、表、主键、外键、序列

    外键用于在两个表之间建立关系,确保引用完整性。创建外键的语法如下: ```sql ALTER TABLE 参照表 ADD CONSTRAINT 外键约束名 FOREIGN KEY (参照列) REFERENCES 被参照表 (被参照列); ``` 假设有一个`DEPARTMENTS`...

    c# Execl命名空间的引用方法.txt

    综上所述,通过正确安装Office环境、引用`Microsoft.Office.Interop.Excel`命名空间以及合理地使用该命名空间提供的API,我们可以轻松地在C#应用程序中实现对Excel文件的操作。这对于需要频繁处理Excel文件的应用...

    空间数据库技术应用电子教材-数据入库.docx

    - **参照完整性**:确保表间的引用关系正确无误,如外键约束。 - **用户自定义完整性**:根据具体应用需要设置的额外规则,如特定字段的唯一性等。 ##### 3.2 数据的一致性 数据的一致性通常指的是关联数据之间的...

    指针引用和动态空间管理

    "指针引用和动态空间管理" ...指针引用和动态空间管理是计算机编程中两个重要的概念,它们广泛应用于各种编程语言和应用系统中。了解指针引用和动态空间管理的知识对计算机编程的学习和应用具有重要意义。

    查看Oracle当前用户下的信息(用户,表视图,索引,表空间,同义词,存储过程函数,约束条件)

    它们可以指向表、视图、存储过程或其他数据库对象,使得在不同环境下或者为提高可读性时,可以使用相同的名称来引用这些对象。同义词也可以用于隐藏对象的实际名称,增强安全性。 **存储过程和函数**: 存储过程和...

    改变应用程序引用程序集位置

    在.NET框架中,开发应用程序时,我们经常需要引用外部程序集(dll文件)来扩展功能或使用第三方库。"改变应用程序引用程序集位置"这一主题主要涉及到如何在项目中管理和定位这些引用的dll文件,以便在不同的环境中...

    Excel命名空间无法引用

    ### Excel命名空间无法引用 在开发过程中,尤其是涉及到Excel的操作时,可能会遇到“Excel命名空间无法引用”的问题。这个问题通常发生在使用.NET Framework(如C#)进行Excel导入导出操作时。本文将针对这一问题,...

    工业级FPGA器件空间应用散热设计.pdf

    工业级FPGA器件空间应用散热设计的知识点涵盖如下: 1. FPGA器件在空间应用的必要性:随着卫星传感器获取信息量的增加,需要强大的信号处理平台以完成在轨信号处理。目前星上数字信号处理的主流工作模式是FPGA+DSP...

    C#网络应用编程基础练习题与答案.doc

    C#是一种强大的面向对象的...掌握C#的基础知识,包括架构模式、数据类型、命名空间和引用机制,是成为一名熟练的C#开发者的关键步骤。通过不断的练习和学习,开发者可以充分利用C#的优势,构建高效、安全的网络应用。

    据库实验创建数据库/表空间.doc

    实验报告涉及的是数据库的创建和管理,主要涵盖了创建数据库与表空间的相关操作,这是数据库管理系统(DBMS)的基础知识。数据库是存储数据的系统,而表空间则是数据库中存储数据的逻辑划分,用于组织和管理数据库...

    oracle_创建表空间、表、主键、外键、序列.docx

    然后,为`Orders`表添加一个外键,引用`Users`表的`Id`字段: ```sql ALTER TABLE Orders ADD CONSTRAINT fk_Id FOREIGN KEY (uuid) REFERENCES Users(id); ``` **创建检查约束** 在`Users`表中添加一个检查约束,...

    ORACLE10g数据库创建表空间序列

    以上就是Oracle 10g数据库中创建表空间、数据链路、同义词、序列号和视图的基本操作,它们在数据库管理和应用开发中起到至关重要的作用。理解并熟练掌握这些语句有助于更高效地管理和操作数据库。

    C#源代码-添加引用和导入命名空间.zip

    在C#编程中,"添加引用"和"导入命名空间"是两个至关重要的概念,它们对于组织和管理代码,以及确保程序的正确运行至关重要。本文将深入探讨这两个主题,并通过实例来阐述它们在C#源代码中的应用。 首先,我们来看...

    Microsoft.JScript(引用)

    例如,引用System.IO命名空间后,可以使用`System.IO.File`类进行文件操作。 三、JScript与.NET Framework的交互 JScript的引用功能使得它能够无缝地与.NET Framework交互,利用.NET的强大功能。例如,通过引用...

    指针和引用的区别

    - **引用**不占用独立的内存空间,它直接绑定到已存在的变量上,共享相同的内存空间。 #### 五、编译层面的区别 - 在编译阶段,编译器会为指针变量分配内存,并将其地址记录在符号表中。符号表中的记录表示的是指针...

    C++指针与引用的区别

    指针是一个变量,它存储了某个内存地址,而引用只是一个别名,它本身不占用内存空间。 2. 引用使用时无需解引用(*),指针需要解引用;在使用指针时,需要使用解引用符号(*)来获取指针所指向的内存地址,而引用...

    java 常见的四种引用

    每种引用类型都有其特定的应用场景,通过灵活运用这些引用类型,开发者可以在内存管理和资源利用之间取得更好的平衡。 #### 1. 强引用 (Strong Reference) 强引用是最常见的引用类型,也是我们通常所说的引用。如果...

Global site tag (gtag.js) - Google Analytics