Maison >base de données >Oracle >Qu'est-ce que l'espace de table Oracle
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.
L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.
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 :
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 structurel
fichier de données, segment, diagramme de relation d'extension
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 数据库中的所有段分配的存储
3. 1, créez un espace table
--语法: create [temporary] tablespace tablespace_name tempfile|datafile ‘xx.dbf’ size xx; --创建临时表空间时,加上temporary关键字;
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 --自动扩展
3. Modifier l'état de l'espace table
alter tablespace tablespace_name online|offline;--表空间是脱机时不可用,默认是联机的
4. Supprimer l'espace table
drop tablespace tablespace_name[including contents]; --including contents 表示删除表空间包括datafile数据文件,不加则不删除相关数据文件; --删除数据文件时,不能删除表空间当中第一个数据文件,如果要删除就需要删除整个表空间。
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;Tutoriel recommandé : "
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!