বস্তুগত দৃশ্যের পরিবর্তে একটি টেবিল ব্যবহার করবেন না কেন?


53

আমি ওরাকল ডাটাবেসে নতুন new যদি আমি সঠিকভাবে বুঝতে পারি তবে ম্যাটেরিয়ালাইজড ভিউটি এমন একটি ভিউ যা ফলাফল সেটটি ডাটাবেসে একটি ফিজিক্যাল টেবিল হিসাবে সংরক্ষণ করা হয় এবং এই ভিউ / টেবিলটি কিছু প্যারামিটারে রিফ্রেশ বেস হয়। যদি দৃশ্যটি কোনও দৈহিক টেবিল হিসাবে সংরক্ষণ করা হয়, তবে কেন প্রথম স্থানে কোনও টেবিলে ডেটা সংরক্ষণ করবেন না? তাহলে কোনও টেবিলের পরিবর্তে বস্তুগত দৃষ্টিভঙ্গিটি ব্যবহার করে কী লাভ হবে?

উত্তর:


59

বস্তুগত দৃষ্টিভঙ্গি ব্যবহারের সবচেয়ে বড় সুবিধা হ'ল ওরাকল ডেটা সিঙ্কে রাখার যত্ন নেয়। আপনার যদি আলাদা আলাদা টেবিল থাকে তবে ডেটা সিঙ্ক্রোনাইজ করার জন্য আপনি দায়বদ্ধ। এর জন্য সাধারণত যুক্তিসঙ্গত পরিমাণ কোড এবং শালীন পরিমাণের পরীক্ষার প্রয়োজন হয় এবং বেশিরভাগ সংস্থাগুলি এমন ভুল করতে পরিচালিত করে যা এমন ছিদ্র ছেড়ে দেয় যা সামগ্রিক সারণি সিঙ্ক থেকে বেরিয়ে আসে। এটি বিশেষভাবে সত্য যখন আপনি সামগ্রিক টেবিলের ইনক্রিমেন্টাল রিফ্রেশকে প্রয়োগ করার চেষ্টা করেন।

আর একটি বড় সুবিধা হ'ল, সেটিংসের উপর নির্ভর করে, যখন ব্যবহারকারীরা বেস টেবিলগুলির বিরুদ্ধে প্রশ্ন উত্সাহিত করেন তখন অরাকল বস্তুগত দৃষ্টিভঙ্গি ব্যবহার করতে কোয়েরি পুনর্লিখন ব্যবহার করতে পারেন। সুতরাং, উদাহরণস্বরূপ, আপনার যদি দৈনিক, মাসিক এবং বার্ষিক সামগ্রিক ফলাফল উত্পাদন করে এমন বিশদ টেবিলের বিরুদ্ধে প্রচুর প্রতিবেদন থাকে তবে আপনি বেস টেবিলটিতে দৈহিক দৃষ্টিভঙ্গি তৈরি করতে পারেন যা দৈনিক স্তরে ডেটা একত্রিত করে এবং অপ্টিমাইজারটি করতে পারে আপনার বিদ্যমান বিদ্যমান প্রশ্নের জন্য সেই বাস্তবায়িত দৃশ্যটি ব্যবহার করুন। আপনার নতুন সামগ্রিক টেবিলটি ব্যবহার করতে কয়েক ডজন প্রতিবেদন লিখতে বা পুনরায় লেখার চেষ্টা না করে বা DBMS_ADVANCED_REWRITEআপনার নিজের প্রশ্নের পুনরায় লেখার জন্য জোর করার জন্য কোনও ডেটা গুদামে ওয়ার্ক লোডগুলি প্রতিবেদন করার কাজটি আরও সহজ করে তোলে ।


14

ধাতবীকৃত দর্শনগুলি তাদের বেস সারণিগুলি আপডেট হওয়ার সাথে সাথে স্বয়ংক্রিয়ভাবে আপডেট হয়।


1
নোট ON DEMANDএটি ডিফল্ট রিফ্রেশ আচরণ। বস্তুগত দৃশ্যটি অবশ্যই তৈরি করা উচিত ON COMMIT। এবং প্রকৃত দৃশ্য বজায় রাখা নিখরচায় নয়। এটি সম্ভবত ট্রিগারের তুলনায় সস্তা।
ডিউরেট

10

এমভি ব্যবহারের জন্য একটি ভাল কেস হ'ল কিছু সময় আপনি ডেটা একত্রিত করতে চান এবং বড় টেবিলগুলি থেকে ঘন এবং দ্রুত এই সারসংক্ষেপ তথ্যটি পেতে চান। বাস্তবায়িত দর্শন ছাড়াই আপনাকে হয় আপনার কয়েকটি সারণীটিকে অযৌক্তিকরূপে করতে হবে এবং কোডের মাধ্যমে সমষ্টিগুলি বজায় রাখতে হবে বা বারবার সারিগুলির বড় সেট স্ক্যান করতে হবে। যে কোনও উপায়ে ড্যাশবোর্ড এবং অনুরূপ অনলাইন অ্যাপ্লিকেশন সহ সর্বদা বিশেষভাবে গ্রহণযোগ্য নয়। যদি আপনি ফলাফলগুলি একটি আলাদা টেবিলগুলিতে রাখেন তবে আপনি আপনার অ্যাপ্লিকেশন কোডটিকে জটিল করে তুলবেন এবং @ জাস্টিন গুহ যেমন বলেছেন, ম্যানুয়ালি একত্রিত ডেটা সিঙ্কে রয়েছে তা নিশ্চিত করার দায়িত্বে আপনি দায়িত্বে নিবেন। মূল টেবিলের ডেটা সহ।


4

কোনও ওরাকল ব্যক্তি নয়, তবে অন্য ব্যবহারের ক্ষেত্রে তৃতীয় পক্ষের সমাধান হবে। তারা সাধারণত তাদের ডিজাইনে পরিবর্তন আনতে আপনাকে সমর্থন করে না তবে এমভি তাদের কোডটিতে "অদৃশ্য" হবে তবে কাস্টম প্রতিবেদন / ডেটা উত্তোলনের অ্যাক্সেস সরবরাহ করবে।

এটি নিখরচায় নয় যে এটির স্টোরেজ ব্যয় এবং সম্ভাব্যভাবে কার্যকর কার্যকর সন্নিবেশ / আপডেটের সময় ব্যয় হবে তবে এটি "সোজা দর্শন" বনাম প্রকৃত টেবিলগুলি তৈরি করতে বা আশেপাশের ইটিএল বজায় রাখার সাথে ম্যাটেরিয়াল ডেটা পুনরুদ্ধারে ব্যয় হওয়া সময়ের দ্বারা অফসেট হয়ে যেতে পারে।

অবশেষে, এটি করা আপনার বিক্রেতার সাথে আপনার সমর্থন চুক্তিটি অকার্যকর হতে পারে, আপনার আইনজীবি-ব্লা-ব্লাহ-ব্লাহ-এর পরামর্শ নিন


2

এর পরিবর্তে সরাসরি যাচ্ছে রূপায়িত মতামত আমাকে ব্যাখ্যা করতে দাও দেখেছে

মূলত দর্শনগুলি টেবিলের বিপরীতে যৌক্তিকভাবে বিদ্যমান। আমরা যদি ব্যবহারকারীদের কাছে নির্দিষ্ট কলামগুলি গোপন করতে চাই তবে আমরা টেবিলগুলি ব্যবহার করতে পারি না। একটি দৃশ্য তৈরি করা আমরা সুরক্ষা অর্জন করতে পারি।

ব্যবহারের ক্ষেত্রে: যদি কোনও ভিউ অভ্যন্তরীণভাবে 10 টি টেবিলের সাথে গোষ্ঠী অনুসারে এবং ফাংশনগুলিতে কয়েক মিলিয়ন সারি থাকে তবে তা কার্যকর করতে অনেক সময় লাগে।

সুতরাং এখানে আসে ম্যাটারিয়ালাইজড ভিউগুলি আমাদের দ্রুত ডেটা পেতে সহায়তা করে। বস্তুগত দর্শনগুলি ডাটাবেসে শারীরিকভাবে বিদ্যমান। যখনই বেস সারণী আপডেট করা হয় তখন ধাতব দৃশ্যটি আপডেট হয়।

উপাদানযুক্ত দর্শনগুলি কোয়েরির সংজ্ঞা অনুসারে পর্যায়ক্রমে আপডেট করা হয়, সারণী এটি করতে পারে না।


0

একটি পর্যায়ক্রমিক ভিত্তি পর্যায়ক্রমিক ভিত্তিতে স্বয়ংক্রিয়ভাবে রিফ্রেশ করার জন্য সেট আপ করা যেতে পারে। ডেটা কাটা / পুনরায় লোড করতে একটি টেবিলের অতিরিক্ত কোডের প্রয়োজন হতে পারে।

উদাহরণস্বরূপ: একাধিক টেবিলের ডেটাযুক্ত বস্তুযুক্ত দর্শনটি পিকবিহীন সময়গুলিতে স্বয়ংক্রিয়ভাবে রিফ্রেশ করার জন্য সেটআপ করা যেতে পারে। একটি দৈহিক টেবিলের অতিরিক্ত ডেটা কাটা / পুনরায় লোড করার জন্য কোডের প্রয়োজন হবে।

সুরক্ষা কোনও টেবিলের চেয়ে বস্তুগত দৃশ্যে আরও ভালভাবে নিয়ন্ত্রণ করা যায়।


0

একটি বস্তুগত দর্শন হ'ল একটি ডাটাবেস অবজেক্ট যা কোয়েরির ফলাফল ধারণ করে। এগুলি হ'ল দূরবর্তী অবস্থানের ডেটার স্থানীয় অনুলিপি বা কোনও টেবিলের ডেটার সংক্রমণের উপর ভিত্তি করে সারাংশ সারণী তৈরি করতে ব্যবহৃত হয়। http://www.oraappdata.com/2016/04/materialized-view.html


1
দয়া করে মনে রাখবেন যে প্রশ্নটি বস্তুগত দৃষ্টিভঙ্গি কী তা নয়, তবে কেন এবং কীভাবে এটি ব্যবহার করবেন সে সম্পর্কে।
টুইঙ্কলস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.