আমার পরিস্থিতির জন্য, আমি একটি ভিউ স্তর ব্যবহার করে ড্রপগুলি সীমাবদ্ধ করতে পছন্দ করি:
- "_ নতুন" এর সাথে প্রত্যয়যুক্ত বস্তুগত দৃশ্যের একটি অনুলিপি তৈরি করুন এবং পারফরম্যান্সের জন্য "কোনও ডেটা ছাড়াই" ব্যবহার করুন, নিশ্চিত করুন যে কোনও সূচকও প্রত্যয় এবং ডিআরপি-র মাধ্যমে আবিষ্কার করা অন্য কোনও নির্ভরশীল অবজেক্টের সাহায্যে তৈরি করা হয়েছে ... ক্যাসকেড
- বিমূর্ততার স্তর সরবরাহ করতে নতুন পদার্থযুক্ত দৃষ্টিভঙ্গির উপর একটি ভিউ তৈরি করুন যাতে আমার এটি কেবলমাত্র এক জায়গায় বদলাতে হবে
- পরিবর্তে নতুন দৃষ্টিভঙ্গি উল্লেখ করার জন্য বিদ্যমান নির্ভরতাগুলি পরিবর্তন করুন (আগে প্রয়োজন হলে ডেটা রিফ্রেশ করুন)
- মূল বস্তুযুক্ত দর্শন এবং সূচকগুলি ফেলে দিন যেখানে এখন কোনও নির্ভরশীলদের থাকা উচিত নয়
- আসল নামগুলি পুনরুদ্ধার করতে প্রত্যয়টি ফেলে দেওয়ার জন্য বস্তুগত দৃষ্টিভঙ্গি এবং সূচিগুলি পরিবর্তন করুন
যেমন।
create table test (myfield int);
insert into test values (1);
create materialized view mv_test as select myfield from test;
create view v_test as select myfield from mv_test;
select * from v_test;
create materialized view mv_test_new as select myfield, myfield+1 as myfield2 from test;
alter view v_test rename to v_test_old;
alter materialized view mv_test rename to mv_test_old;
create view v_test as select myfield,myfield2 from mv_test_new;
select * from v_test;
alter materialized view mv_test_new rename to mv_test;
drop view v_test_old; -- when ready
drop materialized view mv_test_old; -- when ready