oracle表空间要跟java项目的关系
我想知道如果是不是每开发一个java项目,就必须创建一个表空间,还是说多个java项目可以共用一个创建的表空间,数据库是oracle。如果共用一个表空间,有什么弊端吗?...
我想知道如果是不是每开发一个java项目,就必须创建一个表空间,还是说多个java项目可以共用一个创建的表空间,数据库是oracle。如果共用一个表空间,有什么弊端吗?
展开
1个回答
展开全部
并不是说一定会怎么样,表空间主要和数据库用户相关 ,并不是每个java项目就需要一个表空间。
基本上对于每个java项目来说,我们都会分配给一个用户,一般来说是没有重复的。那么这个java项目的数据,也就是这个用户的数据会存储在相应的默认的表空间上(一般都是,有时会在其他表空间授权。存储在其他表空间,不过一般都在默认表空间)。
如果两个或多个用户公用一个表空间,那么可能存在这个表空间特别大,这样对于数据库的管理很不利。比如,数据仓库有很多层,数据集市,数据汇总等等。如果把这些放在一个表空间中,那么这个表空间的访问量非常高和这个表空间数据文件的io也将非常高(甚至可能出现数据文件征用io的现象),这样对于数据库优化很不利。再比如某些项目可能需要频繁“擦写”的动作,那么如果在同一个表空间,那么可能会影响其他用户(项目)的读取和擦写。所以我们基本上会将访问量大,数据量大,擦写量大,计算量大的用户拿出来,单独防在一个表空间中,这样就算某个表空间完全挂掉,那么最多你也就损失一个项目的数据,如果放在一起,大概有一个文件挂了,你就可能好几个用户的查询有问题,甚至不能用。
当然,也并不是所有的都要这样,也可以合用空间,比如有些小项目,就没必要单独出一个表空间,某些试验项目也没有这个必要。不过具体的要自己分析,对于dba来说的一定之规就是“安全+效率”在这个前提下,怎么弄都行。
基本上对于每个java项目来说,我们都会分配给一个用户,一般来说是没有重复的。那么这个java项目的数据,也就是这个用户的数据会存储在相应的默认的表空间上(一般都是,有时会在其他表空间授权。存储在其他表空间,不过一般都在默认表空间)。
如果两个或多个用户公用一个表空间,那么可能存在这个表空间特别大,这样对于数据库的管理很不利。比如,数据仓库有很多层,数据集市,数据汇总等等。如果把这些放在一个表空间中,那么这个表空间的访问量非常高和这个表空间数据文件的io也将非常高(甚至可能出现数据文件征用io的现象),这样对于数据库优化很不利。再比如某些项目可能需要频繁“擦写”的动作,那么如果在同一个表空间,那么可能会影响其他用户(项目)的读取和擦写。所以我们基本上会将访问量大,数据量大,擦写量大,计算量大的用户拿出来,单独防在一个表空间中,这样就算某个表空间完全挂掉,那么最多你也就损失一个项目的数据,如果放在一起,大概有一个文件挂了,你就可能好几个用户的查询有问题,甚至不能用。
当然,也并不是所有的都要这样,也可以合用空间,比如有些小项目,就没必要单独出一个表空间,某些试验项目也没有这个必要。不过具体的要自己分析,对于dba来说的一定之规就是“安全+效率”在这个前提下,怎么弄都行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询