Maison > base de données > Oracle > Qu'est-ce que l'espace de table Oracle

Qu'est-ce que l'espace de table Oracle

青灯夜游
Libérer: 2021-12-24 11:54:35
original
12581 Les gens l'ont consulté

L'espace table Oracle est la division logique de la base de données et la plus petite unité de récupération de base de données Oracle. Il accueille de nombreuses entités de base de données, telles que des tables, des vues, des index, des clusters, des segments d'annulation, des segments temporaires, etc. Une base de données Oracle peut avoir un ou plusieurs espaces table, et un espace table correspond à un ou plusieurs fichiers de base de données physiques.

Qu'est-ce que l'espace de table Oracle

L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.

1. Concept

Les tablespaces Oracle (tablespaces) sont un concept logique. Les fichiers de données sont ce qui stocke réellement les données. Une base de données Oracle peut avoir un ou plusieurs espaces table, et un espace table correspond à un ou plusieurs fichiers de base de données physiques.

L'espace table est la plus petite unité de récupération de base de données Oracle, hébergeant de nombreuses entités de base de données, telles que des tables, des vues, des index, des clusters, des segments d'annulation, des segments temporaires, etc.

1. Caractéristiques de l'espace table Oracle :

(1) Contrôler l'allocation du disque des données de la base de données ;

(2) Limiter la quantité d'espace disque que les utilisateurs peuvent utiliser dans l'espace table ; L'espace a des attributs en ligne, hors ligne, en lecture seule et en lecture-écriture.

2. Classification des espaces table :

    Espace table permanent : Certains objets à stocker en permanence dans la base de données, tels que : tables, vues, procédures stockées
  • Espace table temporaire : Exécution intermédiaire pendant la base de données opérations Le processus, une fois l'exécution terminée, le contenu stocké sera automatiquement libéré
  • Espace table UNDO : utilisé pour enregistrer l'ancienne valeur des données modifiées de la transaction et peut restaurer les données
Segment ( segment)

fait référence au nom général de l'espace du fichier de données occupé, ou à la collection d'espace utilisée par les objets de base de données ; les segments peuvent inclure des segments de table, des segments d'index, des segments d'annulation, des segments temporaires, des segments de cache, etc.

Étendue (Intervalle/Extension

), tout bloc continu alloué à un objet (comme une table) est appelé un intervalle ; l'intervalle est également appelé une extension, car lorsqu'il utilise l'intervalle alloué, de nouveaux enregistrements doivent être inséré dans Allouer de nouvelles plages (c'est-à-dire étendre certains blocs) ; une fois qu'une plage est allouée à un objet (table, index, cluster), la plage ne peut pas être allouée à d'autres objets.

Diagramme structurelQuest-ce que lespace de table Oracle

fichier de données, segment, diagramme de relation d'extensionQuest-ce que lespace de table Oracle
2 Vues associées

select * from dba_data_files;   --describes database files  数据文件信息
select * from dba_temp_files;   --describes all temporary files (tempfiles) in the database 临时数据文件信息
select * from dba_free_space;   --describes the free extents in all tablespaces in the database 数据库中所有表空间中的空闲扩展区
select * from dba_segments;     --describes the storage allocated for all segments in the database 数据库中的所有段分配的存储
Copier après la connexion

Quest-ce que lespace de table Oracle

Quest-ce que lespace de table Oracle

Quest-ce que lespace de table Oracle3. 1, créez un espace table

--语法:
create [temporary] tablespace tablespace_name tempfile|datafile ‘xx.dbf’ size xx;
--创建临时表空间时,加上temporary关键字;
Copier après la connexion

2. Développez l'espace table

Lorsqu'un certain espace table est utilisé, l'opération d'insertion ne peut plus être effectuée sur la table de la base de données. À ce stade, nous pouvons étendre l'espace table. espace table en ajoutant des fichiers de fichiers de données.
select f.* from dba_data_files f where f.tablespace_name='MLT';--查看表空间信息

alter tablespace MLT --表空间名
     add datafile '/home/oracle/oradata/crm/mlt04.dbf'  --datafile文件路径
     size 100M --表空间大小
     autoextend on --自动扩展
Copier après la connexion

3. Modifier l'état de l'espace table

Quest-ce que lespace de table Oracle

alter tablespace tablespace_name online|offline;--表空间是脱机时不可用,默认是联机的
Copier après la connexion

4. Supprimer l'espace table

drop tablespace tablespace_name[including contents];
--including contents 表示删除表空间包括datafile数据文件,不加则不删除相关数据文件;
--删除数据文件时,不能删除表空间当中第一个数据文件,如果要删除就需要删除整个表空间。
Copier après la connexion

5.

--查询表空间使用情况SELECT Upper(F.TABLESPACE_NAME)         "表空间名",
       D.TOT_GROOTTE_MB                 "表空间大小(M)",
       D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
       To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99')
       || '%'                           "使用比",
       F.TOTAL_BYTES                    "空闲空间(M)",
       F.MAX_BYTES                      "最大块(M)"FROM   (SELECT TABLESPACE_NAME,
               Round(Sum(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES,
               Round(Max(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTES
        FROM   SYS.DBA_FREE_SPACE
        GROUP  BY TABLESPACE_NAME) F,
       (SELECT DD.TABLESPACE_NAME,
               Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MB
        FROM   SYS.DBA_DATA_FILES DD
        GROUP  BY DD.TABLESPACE_NAME) DWHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME--查询表空间的空闲扩展区select tablespace_name, count(*) AS extends,round(sum(bytes) / 1024 / 1024, 2) AS 大小/MB,sum(blocks) AS blocks from dba_free_space group BY tablespace_name;--查询表空间的总容量select tablespace_name, sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name;--查询表空间使用率SELECT total.tablespace_name,
       Round(total.MB, 2)           AS   总量/MB,
       Round(total.MB - free.MB, 2) AS  已使用/MB,
       Round(( 1 - free.MB / total.MB ) * 100, 2) || '%'                  AS  使用率FROM   (SELECT tablespace_name,
               Sum(bytes) / 1024 / 1024 AS MB
        FROM   dba_free_space
        GROUP  BY tablespace_name) free,
       (SELECT tablespace_name,
               Sum(bytes) / 1024 / 1024 AS MB
        FROM   dba_data_files
        GROUP  BY tablespace_name) totalWHERE  free.tablespace_name = total.tablespace_name;
Copier après la connexion
Tutoriel recommandé : "
Tutoriel Oracle

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal