需求:
现有100个用户,每个用户下的表结构都相同,这100个用户根据各地市的数据量进行分配,如有的地市数据少,只分配2个用户,
有的地市数据多,分配10个用户,大家有什么办法对这100多个用户统一管理没?如:
1.以长沙为例,用户名前缀为u_chanshang_00[0-9],分配的用户数为10个,我要对这个地市的数据进行统一查询,
如,统计长沙这个地市下面某个表的数据量。
2. 如果使用union all查询,会不会走索引,效率怎么样?总的来说就是方便和效率问题。

解决方案 »

  1.   

    只要是在同一个库就可以做到统一管理。走不走索引那要看你的索引建得合不合理,还有Oracle以哪种方式执行SQL。
      

  2.   

    你可以加上用户名前缀查询,union all是不可避免了,因为你要查询的对象都不是一个表。不过我还是感觉你这个是设计上的问题,我头一次听说为每个地市分配一个oracle用户的,而且表结构都一样,这不是自找麻烦么?这种应该全部放在一个用户下的一张表里,然后多一个地市字段去区分是哪个地市的用户。至于如果有每个地市只能看到自身数据这种要求的话,其实应该做到应用程序(如java)里去解决的。
      

  3.   

    你的设计比较累.  
    如果长沙分配10个用户,那你没一个针对长沙的统计都要访问十张表,而且由于在不同用户下,语句都不能公用.如果你是考虑数据量二这么设计,建议你把设计修改为每个地市一个用户(oracle用户) ,然后根据地址大小对表做分区 ,小一点的地方分两个区,大一点分10个区.或者更多.也可以按照地市编码+年月进行复核分区.