Soru Gerçekleştirilmiş görünüm sorgusunu değiştir


Materialized view sorgusunu değiştirmem gerekiyor. Onu bırakmadan ve yeniden oluşturmadan aynı şeyi yapmak mümkündür.


18
2017-11-25 07:39


Menşei




Cevaplar:


Hayır, düşürülmüş bir görünümün sorgulamasını düşürmeden değiştiremezsiniz.

CREATE MATERIALIZED VIEW sözdizimi bu özelliği desteklemiyor.

ALTER MATERIALIZED VIEW, mevcut materyalize görünümü aşağıdaki yollardan bir veya daha fazlasında değiştirmek için kullanılır:

  • Depolama özelliklerini değiştirmek için
  • Yenileme yöntemini, modunu veya saatini değiştirmek için
  • Yapısını değiştirmek için farklı bir materyalize görünümdür.
  • Sorgu yeniden yazmayı etkinleştirmek veya devre dışı bırakmak için

Oracle 12c Sürüm 1 Kılavuzuna bakın:


16
2018-06-27 14:49





MVIEW'un var olup olmadığından emin olmadığınız durumlar için (CREATE VEYA DEĞİŞTİRMEK gerçekten iyi olanı), kullanıyorum;

BEGIN
    EXECUTE IMMEDIATE 'DROP MATERIALIZED VIEW name_of_mview';
    EXCEPTION
        WHEN OTHERS THEN
            IF SQLCODE = -12003 THEN
                dbms_output.put_line('MVIEW does not exist, which was somewhat expected');
            ELSE
                RAISE;
            END IF;
END;
/

CREATE MATERIALIZED VIEW name_of_mview ... AS SELECT ...

5
2018-06-03 13:10





Mview'i yerinde bırakabilirsiniz. Endişeniz, yeni mview anında başlatılırken kesinti süresini azaltmaksa (önceden oluşturulmuş bir tablo kullanmadığınız için) aşağıdakileri yapabilirsiniz.

  1. Önceden oluşturulmuş masadaki mview_1 adlı yeni bir tablo oluşturun
  2. Oluşturulduktan sonra eski olanı bırakabilirsiniz.
  3. mview_1'den görünüm mview'i oluştur veya değiştir

Şimdi, ne zaman yeniden yapılandırmanız gerektiğinde, bunu, yeni tabloya / mview'e yönlendirmek için basit bir bakış açısına sahip olacağınız için çok az kesinti yapmak mümkün olacaktır.


3
2017-11-25 14:44



Sorgularınızı ve kodunuzu bir eşanlamlıya (veya standart görünüme) yönlendirirseniz ve yanlış gerçekleşmiş görünümden yeni olana döndürdüğünüzde (ve tekrar değiştirmeniz gerektiğinde) kesinti sıfır olabilir. Materyalize görünümün oluşturulması, ihtiyaç duyduğu her anı alabilir, sadece işaretçiyi milisaniyede hazır olduğunda değiştirirsiniz. - Matteo Steccolini


Bu, daha sonraki bir Oracle sürümünde yeni bir özellik olabilir, ancak bu çalışmayı güzel buldum:

DROP MATERIALIZED VIEW my_mview PRESERVE TABLE;

CREATE MATERIALIZED VIEW my_mview
ON PREBUILT TABLE ...

1
2017-07-02 19:12





Sen BELKİ Mevcut MV'yi bir kaynak olarak kullanabilecektir. yeni MV için önceden oluşturulmuş masa 

Bir çok dersin sorgusuna yaptığınız şeye bağlıdır. Örneğin, bir sütun ekliyorsanız, yeni değerini almak için her şeyi yenilemeniz gerekir.

PS. Mevcut MV'yi bir tabloya dönüştürmenin hızlı yolu, bölüm değişimi olabilir ancak FRİKİKLERİNDEN. Ardından, tabloyu yeni sonuç kümesine uyacak şekilde manipüle edin ve manipüle tablaya dayalı olarak yeni MV'yi yaratın.


0
2017-11-25 08:38