建了视图A 在A的基础上又建了B,C,D,E视图,在B,C,D,E视图基础上又建了F现在我要修改和删除中间视图的话慢,一直执行不出来
CREATE OR REPLACE VIEW B
........删除F视图也是,老死机。。
请问这是为什么啊?
SQL SERVER里面没有这么严重啊

解决方案 »

  1.   

    我这里实测没有任何问题。
    应该是具体数据库的问题。CREATE TABLE T188
    (
        MyDate DATE,
        Income NUMBER(3),
        COST   NUMBER(3)
    );CREATE OR REPLACE VIEW ViewT188L1
    AS SELECT MyDate, Income FROM T188;SELECT * FROM ViewT188L1;
    CREATE OR REPLACE VIEW ViewT188L2
    AS SELECT MyDate FROM ViewT188L1;SELECT * FROM ViewT188L2;CREATE OR REPLACE VIEW ViewT188L1
    AS SELECT MyDate FROM T188;DROP VIEW ViewT188L2;
      

  2.   

    这个可能和系统的并发访问有关系
    当你的视图b被访问,你修改a可能会遇到一些问题
    因为我个人对ms sql不太熟悉,如果是oracle,将会导致b视图临时性的无效,使用的时候,需要自动编译,从而导致latch等待,所以不建议你这样的做法
      

  3.   

    还有存储过程也是,,建好了,再修改,就特别慢,老是执行中状态
    create or replace procedure yosann_kotei Is
    begin
     
    delete from  YOSANN_KOTEI_FL;insert into YOSANN_KOTEI_FL 
    select * from 
    (
    SELECT A.*, B.LB,B.LB2,C.KOTEI FROM YOSANN A
    left join YOSANN_LB B ON rtrim(ltrim(A. YOSANN_LB))= rtrim(ltrim(B.LB))
    LEFT JOIN KOTEI_MASTA C ON ltrim(A.BUMONN)=C.BUMONN )C;end YOSANN_KOTEI;