数据库的表空间_默认表空间

数据库的表空间_默认表空间表空间的概述数据库的表空间,简而言之就是数据库存储数据的存储结构,是一种用来存储数据的逻辑空间,是数据库用来存储数据的最大逻辑单元,其下还有段、区、数据块等逻辑数据类型。表空间的存在就是为了用来存储数据库的数据对象,一个数据库可以由多个数据表空间组成,可以通过表空间来实现对数据库的调参。表空间的分类永久性表空间:在存储过程中需要永久化存储的对象,比如二维表,视图,存储过程,索引。临时表空间:临时表…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

表空间的概述

数据库的表空间,简而言之就是数据库存储数据的存储结构,是一种用来存储数据的逻辑空间,是数据库用来存储数据的最大逻辑单元,其下还有段、区、数据块等逻辑数据类型。表空间的存在就是为了用来存储数据库的数据对象,一个数据库可以由多个数据表空间组成,可以通过表空间来实现对数据库的调参。

表空间的分类

  • 永久性表空间:在存储过程中需要永久化存储的对象,比如二维表,视图,存储过程,索引。
  • 临时表空间:临时表空间实在数据库执行的过程中创建的,如:执行order by,like,等查询命令时产生的临时数据。操作完之后临时表空间的内容会自动释放,不会对数据库产生影响。临时表空间一般存储在TEMP中,用户也可以自行手动创建临时表空间,手法多样,多变。
  • UNDO表空间:保存数据库表修改之前的副本。存储事务修改的旧址,即是为了保存数据修改之前的另一个版本。利于对数据操作的回滚、恢复和撤销。

查看system用户的默认表空间和临时表空间:

Jetbrains全家桶1年46,售后保障稳定

SQL> SELECT PROPERTY_NAME, PROPERTY_VALUE 
2 FROM DATABASE_PROPERTIES;

PROPERTY_NAME PROPERTY_VALUE
------------------------------ ------------------
DEFAULT_TEMP_TABLESPACE              TEMP

默认表空间

用户在登陆后没有指定表空间的话,数据就会默认存储到默认表空间。

查看默认的永久表空间

注意:如果创建用户时,不指定其永久表空间,则会使用默认的表空间

SQL> SELECT PROPERTY_NAME, PROPERTY_VALUE 
2 FROM DATABASE_PROPERTIES;

PROPERTY_NAME PROPERTY_VALUE
------------------------------ ------------------
DEFAULT_TEMP_TABLESPACE              TEMP

DEFAULT_PERMANENT_TABLESPACE         USERS

查看默认的TEMP表空间

系统管理员查看表空间

SQL> SELECT PROPERTY_NAME, PROPERTY_VALUE
2 FROM DATABASE_PROPERTIES
3 WHERE PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE'
4 ;

PROPERTY_NAME                        PROPERTY_VALUE
------------------------------ ----------------------------
DEFAULT_TEMP_TABLESPACE                  TEMP

普通用户

SELECT USERNAME, TEMPORARY_TABLESPACE FROM DBA_USERS

逻辑结构到物理结构的映射

表空间与数据文件:实际上表空间是由若干个数据文件构成,数据文件的位置和大小可以由我们而定。数据被存放在表空间的数据文件中。

数据库的表空间_默认表空间

注意:表空间的段,区,块等等是一种逻辑结构,其下最小的数据块会映射到磁盘块中,而磁盘块是物理结构。一个数据块由若干个磁盘块组成。

数据库的表空间_默认表空间

数据库的表空间_默认表空间

表空间的操作方式

  • 数据字典:表空间的分配信息可以都存储在数据字典中,但是如果真这样做了,会引起字典争用的后果,这是性能调优的目标之一。
  • 本地存储:表空间分配不放在数据字典,而在每个数据文件头部的第3到第8个块的位图块,来管理空间分配。


查看表空间使用情况

SELECT A.TABLESPACE_NAME                     AS TABLESPACE_NAME, 
        ROUND(A.BYTES/(1024*1024*1024),2)    AS "TOTAL(G)"     , 
        ROUND(B.BYTES/(1024*1024*1024),2)    AS "USED(G)"      , 
        ROUND(C.BYTES/(1024*1024*1024),2)    AS "FREE(G)"      , 
        ROUND((B.BYTES * 100) / A.BYTES,2)   AS "% USED"       , 
        ROUND((C.BYTES * 100) / A.BYTES,2)   AS "% FREE" 
FROM SYS.SM$TS_AVAIL A, SYS.SM$TS_USED B, SYS.SM$TS_FREE C 
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME 
AND A.TABLESPACE_NAME = C.TABLESPACE_NAME;

计算表空间使用情况(考虑了数据文件自动增长情况):

SELECT UPPER(F.TABLESPACE_NAME) AS "表空间名称", 
        ROUND(D.AVAILB_BYTES ,2) AS "表空间大小(G)", 
        ROUND(D.MAX_BYTES,2) AS "最终表空间大小(G)", 
        ROUND((D.AVAILB_BYTES - F.USED_BYTES),2) AS "已使用空间(G)", 
        TO_CHAR(ROUND((D.AVAILB_BYTES - F.USED_BYTES) / D.AVAILB_BYTES * 100, 
            2), '999.99') AS "使用比", 
        ROUND(F.USED_BYTES, 6) AS "空闲空间(G)", 
        F.MAX_BYTES AS "最大块(M)" 
 FROM (
        SELECT TABLESPACE_NAME, 
                ROUND(SUM(BYTES) / (1024 * 1024 * 1024), 6) USED_BYTES, 
                ROUND(MAX(BYTES) / (1024 * 1024 * 1024), 6) MAX_BYTES 
        FROM SYS.DBA_FREE_SPACE 
        GROUP BY TABLESPACE_NAME) F, 
      (SELECT DD.TABLESPACE_NAME, 
                ROUND(SUM(DD.BYTES) / (1024 * 1024 * 1024), 6) AVAILB_BYTES, 
            ROUND(SUM(DECODE(DD.MAXBYTES, 0, DD.BYTES, DD.MAXBYTES))/(1024*1024*1024),6) MAX_BYTES 
       FROM SYS.DBA_DATA_FILES DD 
       GROUP BY DD.TABLESPACE_NAME) D 
        WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME 
ORDER BY 4 DESC

懒得copy了,想看原文点下面

转自:点击打开链接


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234797.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python encode和decode傻傻分不清楚「建议收藏」

    python encode和decode傻傻分不清楚「建议收藏」一、字符串和字节串的区别1、字符串:我们最常挂在嘴边的,”普通字符串“,是给人看的,在python中是str类型,str使用的是unicode编码,可通过encode()方法编码为字节串2、字节串:有时也叫“二进制字符串”,是给机器看的,在python中是bytes类型,bytes有编码格式,如utf-8(默认),gbk,可以通过decode()方法解码为字符串具体操作如下1、程序从文件或其他外部存储读取字节串内容,要将基解码为字符串,然后再内部使用2、程序完成处理,要把字符串写入文件

    2022年10月6日
  • 新手小白学JAVA 冒泡排序

    新手小白学JAVA 冒泡排序3冒泡排序bubble3.1概念冒泡排序(BubbleSort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。3.2形式相邻比较,从小到大

    2022年7月19日
  • SQL查询左连接、右连接、内连接[通俗易懂]

    1、左连接的定义:是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。下边以A表和B表为例子,A、B之间的左连接条件为:ano=bno;查询语句为:SELECT*FROM`A`LEFTJOINB ONano=bno;eg1:A表中的只有1条记录,B表中2条记录…

    2022年4月5日
  • 使用LoadRunner进行压力测试

    使用LoadRunner进行压力测试<!–转自https://www.cnblogs.com/xuzhaoyang/p/10919378.html–>loadrunner压力测试原理本质就是在loadrunner上模

    2022年7月1日
  • 使用 Chrome Timeline 来优化页面性能

    使用 Chrome Timeline 来优化页面性能

    2021年9月17日
  • Java虚拟机:Java内存区域(运行时数据区域)

    Java虚拟机:Java内存区域(运行时数据区域)

    2021年9月26日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号