কীভাবে এসকিউএল সার্ভারে প্রকৃত দৃশ্য তৈরি করবেন?


101

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

উত্তর:


144

এগুলিকে এসকিউএল সার্ভারে সূচিযুক্ত ভিউ বলা হয় - আরও পটভূমির জন্য এই সাদা কাগজপত্রটি পড়ুন:

মূলত, আপনাকে যা করতে হবে তা হ'ল:

  • একটি নিয়মিত ভিউ তৈরি করুন
  • এই ভিউতে একটি ক্লাস্টারড ইনডেক্স তৈরি করুন

এবং তুমি করে ফেলেছ!

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

অতিরিক্ত সম্পদ:


আপনার উত্তর দেওয়ার জন্য ধন্যবাদ. আমি যা চাই তা পেয়েছি .. আমি সূচকগুলি সম্পর্কেও জানতে চাই। আমি জানতে চাই যে এসকিউএল সার্ভারে স্টার স্কিমা ডায়াগ্রাম উত্পন্ন করার কোনও উপায় কি যখন আমার কাছে সমস্ত টেবিল কাঠামো প্রস্তুত থাকে? যদি হ্যাঁ আমি কীভাবে এটির জন্য ফ্যাক্ট টেবিল তৈরি করব?
দীপক

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

4
সম্পর্কিত প্রশ্নে যেমন উল্লেখ করা হয়েছে, এমএসডিএন ব্লগ নিবন্ধ, ব্লগস.এমএসএনএন.মাইক্রোসফট.কম / ২০১৩/০/0/২০/২ , বস্তুগত দৃষ্টিভঙ্গি এবং সূচীদর্শনগুলির মধ্যে কিছু মূল পার্থক্য তুলে ধরে highl সর্বাধিক সমস্যাযুক্ত আইএমএইচও রিফ্রেশ ট্রিগারগুলি নির্দিষ্ট করতে সক্ষম হচ্ছে না: যখনই বেস টেবিলগুলি আপডেট হয় ততক্ষণে সূচকযুক্ত ভিউগুলি আপডেট করা হয় - বস্তুগত দৃষ্টিভঙ্গি ব্যবহারের বেশিরভাগ কার্যকারিতা সুবিধাকে কমিয়ে দেয়। যোগদান, সমষ্টি, উইন্ডোটিং ফাংশন এবং উপকোয়ারিতে নিষেধাজ্ঞাগুলি প্রায়শই ডেটা পরিবর্তিত হয় না যদি সূচী দৃষ্টিভঙ্গি প্রায় অর্থহীন করে তোলে।
সানক্যাট 2000

43

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

আপনার যদি ভিউগুলিতে বাইরের সাথে যোগ দেয় তবে সেগুলি ব্যবহার করা যাবে না। এছাড়াও, সাধারণ সারণী প্রকাশের অনুমতি নেই ... আসলে আপনার যদি সাবলেট বা উত্পন্ন টেবিলগুলিতে কোনও অর্ডিং থাকে (যেমন বিধি দ্বারা বিভাজন সহ), আপনিও ভাগ্যের বাইরে।

এটি সূচকযুক্ত দর্শনগুলি ব্যবহার করার জন্য কেবলমাত্র খুব সাধারণ পরিস্থিতি ছেড়ে দেয়, যাই হোক না কেন অন্তর্নিহিত সারণিতে যথাযথ সূচী তৈরি করে আমার মতে কিছু অনুকূল করা যেতে পারে।

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


প্রকৃতপক্ষে আমি একটি পূর্ণ পাঠ্য অনুসন্ধান সূচককে বিভাগ করার জন্য সূচী দর্শনগুলি (কেবল একবার) ব্যবহার করেছি। এফটিএস সূচকগুলি প্রকৃতপক্ষে বিভাজন করা যায় না, তবে একই টেবিলের বিভিন্ন দর্শনগুলিতে পৃথক সূচি তৈরি করা যেতে পারে। যদিও এটি ছিল এক সর্বশেষ অবলম্বন।
areysram

4
(NOEXPAND)আপনার জিজ্ঞাসাগুলি সূচী দর্শনগুলি ব্যবহার করে এমন ইঙ্গিত যোগ করতে হবে। এবং তারপরে আপনি পার্থক্যটি লক্ষ্য করুন। "টেবিলগুলিকে যথাযথভাবে ইনডেক্সিং করা" ইনডেক্সযুক্ত ভিউগুলি ব্যবহার করার সুবিধা রেকর্ড নির্বাচনকে সীমাবদ্ধ করার মধ্যে রয়েছে, অন্যথায় আপনি সঠিক, এটি একই হবে।
আজ

হ্যাঁ NOEXPAND জিনিসটি ছোট করা যায় না!
সাইমন_উইভার

18

ম্যাটেরিয়ালাইজড ভিউ আসলে কী তা আপনার কিছুটা পটভূমির প্রয়োজন হতে পারে। ওরাকল এ এগুলি এমন একটি বস্তু যা আপনি অন্য কোথাও এটি নির্মাণের চেষ্টা করার সময় বেশ কয়েকটি উপাদান নিয়ে গঠিত।

একটি এমভিউ মূলত অন্য উত্স থেকে প্রাপ্ত ডেটার একটি স্ন্যাপশট। দেখার মতো নয় এমন উপাত্ত খুঁজে পাওয়া যায় না যখন আপনি ভিউটি জিজ্ঞাসা করেন এটি স্থানীয়ভাবে টেবিলের আকারে সঞ্চিত হয়। নিয়মিত বিরতিতে বা উত্সের ডেটা পরিবর্তন হওয়ার পরে পটভূমি পদ্ধতি ব্যবহার করে এমভিউ রিফ্রেশ হয়। ওরাকল সম্পূর্ণ বা আংশিক রিফ্রেশ করার অনুমতি দেয়।

এসকিউএল সার্ভারে, আমি নিয়মিত রিফ্রেশ করার জন্য (সম্পূর্ণ) একটি বেসিক এমভিউ তৈরি করতে নিম্নলিখিতটি ব্যবহার করব।

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

বাকি সবই পরীক্ষা-নিরীক্ষা।


4
এসকিউএল সার্ভার সম্পর্কে আপনার মন্তব্যগুলি ভুল - বস্তুগত দৃষ্টিভঙ্গি ওরাকল এবং এসকিউএল সার্ভারে খুব আলাদা জিনিস। এসকিউএল সার্ভারে, এটির উপর একটি অনন্য ক্লাস্টারড ইনডেক্সের একটি দর্শন (যেমন একটি "উপাদানযুক্ত দর্শন") ব্যবহারকারীর দ্বারা তা আপডেট করা যায় না এবং এটি কোনও পৃথক ব্যবহারকারী দ্বারা নির্মিত টেবিলেও সংরক্ষণ করা হয় না - এটি সর্বদা আপডেট হয় ইঞ্জিন আপডেটের সময় এবং কখনই সিঙ্কের বাইরে থাকে। ডেটাগুলির স্ন্যাপশট সংরক্ষণ করার জন্য কোনও কাজ করার দরকার নেই।
এরিক

10
ওপি যা চেয়েছিল তা সহজেই একটি সূচী দর্শন দ্বারা সরবরাহ করা হয়। এটি এসকিউএল সার্ভার স্থানীয়ভাবে একটি ওরাকল বস্তুগত দৃশ্যের সরবরাহ করে। তবে যদি আপনি / ওরাকল এমভিউয়ের কাজটি ঠিক একইভাবে প্রতিলিপি করতে চান তবে জেসন সঠিক। জেসনের দৃষ্টিভঙ্গি একই দৃশ্যে এছাড়াও সহায়তা করে অরাকল এমভিউগুলি - উদাহরণস্বরূপ এমন রিপোর্টিং টেবিলটি রিফ্রেশ করে যেখানে আপনি কীভাবে আপ টু ডেট তার চেয়ে বেশি ডাটাবেস লোড সম্পর্কে বেশি যত্নশীল হন (উদাহরণস্বরূপ কেবল গতকালের সংখ্যায় রিপোর্ট করা ...)

4

যখন সূচকযুক্ত ভিউ কোনও বিকল্প নয় এবং দ্রুত আপডেটগুলি প্রয়োজন হয় না, আপনি একটি হ্যাক ক্যাশে টেবিল তৈরি করতে পারেন:

select * into cachetablename from myviewname
alter table cachetablename add primary key (columns)
-- OR alter table cachetablename add rid bigint identity primary key
create index...

তারপরে sp_rename দর্শন / সারণী বা কোনও ক্যোয়ারী বা অন্যান্য মতামত পরিবর্তন করুন যা এটি ক্যাশে টেবিলের দিকে নির্দেশ করে।

প্রতিদিন / রাত্রে / সাপ্তাহিক / কি রিফ্রেশ পছন্দ না শিডিয়ুল

begin transaction
truncate table cachetablename
insert into cachetablename select * from viewname
commit transaction

এনবি: এটি আপনার টিএক্স লগগুলিতেও স্থান খাবে। ছোট ডেটাसेटগুলির জন্য সেরা ব্যবহৃত যা গণনা করতে ধীর slow প্রথমে বাইরের দৃশ্যে "সহজ তবে বৃহত্তর" কলামগুলি অপসারণ করতে রিফ্যাক্টর হতে পারে।


1

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

https://msdn.microsoft.com/en-us/library/ms190806.aspx

https://technet.microsoft.com/en-us/library/ms189607(v=sql.105).aspx

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