先drop 掉用户B下的所有表,再从用户A中抽取一些表到用户B中(sql: create table test as select * from A.test),然后再对用户B中的表(即刚刚创建的)进行其他操作,这些操作都是在存储过程中执行的,如何优化?请指教。

解决方案 »

  1.   

    能不能说得具体一点?另外,你是不是非得要这么做?一般很少有人这么做的,换一个方式比如建一个View之类的东西能否解决你的问题?
      

  2.   

    create table ... as  select * from ... 的语法创建的表不带任何索引,主外键,触发器等等,特别是索引,主键,如果没有,应该会影响你的性能。
      

  3.   

    你这么做相当于动态地flush shared pool
    不管你这句话优化到效率多么高,从总体上看都是得不偿失
    换个思路吧
      

  4.   

    我现在的操作就是把用户A的数据表拷贝到用户b下,然后在用户B中对数据进行处理,然后把处理好的数据导出来。使用的只是A的数据其他操作与A没有关系。