数据库用的是Oracle Express 10.2版本的。利用Oracle Text做全文检索应用,创建用户yxl时没有初始化默认表空间,在系统开发过程中我利用yxl在数据库中创建了7个Context或Ctxcat类型索引。开始利用这些索引进行查询的时候速度很慢,在控制台查看了一下,发现system表空间居然占了99.69%。下面是表空间占用情况的截图:
在sqlplus中执行SQL语句:
- select username,default_tablespace,temporary_tablespace from dba_users where username='YXL';
select username,default_tablespace,temporary_tablespace from dba_users where username='YXL';
执行结果:YXL USERS TEMP
未指定默认表空间而创建用户,则系统应该是指定其默认为system表空间的,这里不太清楚为什么USERS成了yxl的默认表空间。
最后,我找到system表空间满的暂定解决方法如下:
一、为system表空间另外新增一个数据文件。
- alter tablespace system add datafile 'D:\oracleXE\oradata\XE\system_01.dbf' resize 1024M;
alter tablespace system add datafile 'D:\oracleXE\oradata\XE\system_01.dbf' resize 1024M;
二、更改system表空间的数据文件SYSTEM.dbf分配空间。
- alter database datafile 'D:\oracleXE\oradata\XE\system_01.dbf' autoextend on;
- alter database datafile 'D:\oracleXE\oradata\XE\system_01.dbf' resize 1024M;