Maison > Article > base de données > Comment résoudre le problème de l'espace table insuffisant dans la base de données
1. L'espace de la table de base de données est insuffisant. L'opération d'insertion signalera
conn.msg = ORA-01653: 表 *******表名字********无法通过 8192 (在表空间 USERS 中) 扩展 ORA-06512: 在 "调用的函数", line 58 ORA-01403: 未找到任何数据 [db.cpp:233]
Cette opération signalera que la taille de l'espace de la table de données est insuffisante. . conduire à.
2. Vérifiez certaines informations pertinentes sur l'espace table occupé
--Interrogez le contenu occupé par la taille de l'espace table
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) D WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME ORDER BY 1;
Résultat :
Il s'agit de la taille des informations occupées par tous les espaces table. La taille de l'espace de la table est toutes les informations de taille allouées à l'espace table. Si le taux d'utilisation est relativement élevé, l'espace peut être insuffisant et les données ne peuvent pas être insérées.
3. Interrogez l'adresse absolue, la taille et l'ID de fichier du disque physique correspondant à l'espace table
---Requête des fichiers de données et de la taille du fichier de données
select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name;
IV , les trois méthodes suivantes peuvent être utilisées pour augmenter la taille de l'espace table
1. Ne modifiez pas directement le fichier DBF précédent , et ajoutez une autre instruction de fichier, vous pouvez augmenter la taille de l'espace table
--laisser les fichiers de données se développer automatiquement
alter tablespace users add datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF' size 32760m autoextend on next 1024m maxsize unlimited; --segment space management auto extent management local;
On dit qu'elle peut être exécutée avec la phrase précédente (supprimez simplement le point-virgule de la phrase précédente. Si elle n'est pas exécutée, je ne connais pas l'exécution). Veuillez l'utiliser avec prudence
2 --Laissez le fichier de données s'étendre automatiquement dans le fichier source et. réglez-le sous la forme d'une expansion automatique. Le taux de croissance est automatiquement étendu à une taille de 100 m. L'expansion maximale est jusqu'à 10 000 m
alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF' autoextend on next 100m maxsize 10000m
3. du fichier de données. Réajustez la taille du contenu du fichier source. La taille n'est pas automatiquement agrandie et directement écrite à mort
alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF' resize 500M;
5. Lorsque l'opération est effectuée, vous pouvez constater que l'espace total alloué a considérablement augmenté et que le taux d'occupation a diminué lorsque vous effectuez une requête.
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!