একটি সাধারণ জিজ্ঞাসার চেয়ে ভিউ কি দ্রুত?


357

ইহা একটি

select *  from myView

ভিউ তৈরির জন্য ক্যোয়ারির চেয়ে দ্রুত (একই ফলসেটটি পেতে):

select * from ([query to create same resultSet as myView])

?

এটি আমার কাছে সম্পূর্ণ পরিষ্কার নয় যদি ভিউটি কোনও সাধারণ ক্যোয়ারের তুলনায় দ্রুততর করে তোলে এমন কিছু ধরণের ক্যাশে ব্যবহার করে।


7
আমি একটি ভিউ সম্পর্কে নিশ্চিত নই, তবে নেস্টেড ভিউগুলি সম্পূর্ণ পারফরম্যান্স।
মুফ্লিক্স

উত্তর:


678

হ্যাঁ , দর্শনগুলিতে একটি ক্লাস্টার্ড সূচি নির্ধারিত থাকতে পারে এবং যখন তারা তা করে, তখন তারা অস্থায়ী ফলাফলগুলি সংরক্ষণ করবে যা ফলাফলের অনুসন্ধানগুলিকে ত্বরান্বিত করতে পারে।

আপডেট: কমপক্ষে তিন জন আমাকে এই বিষয়ে ভোট দিয়েছেন। সমস্ত যথাযোগ্য সম্মানের সাথে, আমি মনে করি যে তারা ঠিক ভুল; মাইক্রোসফ্ট এর নিজস্ব ডকুমেন্টেশন এটিকে খুব স্পষ্ট করে দিয়েছে যে ভিউজগুলি পারফরম্যান্সকে উন্নত করতে পারে।

প্রথমত, সরল দর্শনগুলি স্থলে প্রসারিত হয় এবং সুতরাং কর্মক্ষমতা উন্নয়নে সরাসরি অবদান রাখে না - এটি অনেকটাই সত্য। যাইহোক, সূচিযুক্ত দর্শন নাটকীয়ভাবে পারফরম্যান্সকে উন্নত করতে পারে।

আমাকে সরাসরি ডকুমেন্টেশনে যেতে দাও:

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

দ্বিতীয়ত, এই সূচকযুক্ত দর্শনগুলি তখনও কাজ করতে পারে যখন সেগুলিকে সরাসরি অন্য কোয়েরির দ্বারা রেফারেন্স করা হয় না কারণ উপযুক্ত হলে উপযুক্তকরণটি টেবিলের রেফারেন্সের জায়গায় এগুলি ব্যবহার করবে।

আবার, ডকুমেন্টেশন:

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

এই ডকুমেন্টেশন, সেইসাথে পারফরম্যান্সের উন্নতি প্রদর্শক চার্ট, খুঁজে পাওয়া যেতে পারে এখানে

আপডেট 2: উত্তরের ভিত্তিতে সমালোচনা করা হয়েছে যে এটি "সূচক" যা পারফরম্যান্স সুবিধা সরবরাহ করে, "ভিউ" নয়। তবে এটি সহজে খণ্ডন করা যায়।

আমাদের বলা যাক যে আমরা একটি ছোট্ট একটি সফ্টওয়্যার সংস্থা; আমি উদাহরণ হিসাবে লিথুয়ানিয়া ব্যবহার করব। আমরা বিশ্বব্যাপী সফ্টওয়্যার বিক্রি করি এবং একটি এসকিউএল সার্ভার ডাটাবেসে আমাদের রেকর্ড রাখি। আমরা খুব সফল এবং তাই কয়েক বছরের মধ্যে আমাদের 10,000,000+ রেকর্ড রয়েছে। তবে, আমাদের প্রায়শই করের উদ্দেশ্যে বিক্রয় রিপোর্ট করতে হয় এবং আমরা দেখতে পাই যে আমরা আমাদের দেশে আমাদের সফ্টওয়্যারটির কেবলমাত্র 100 কপি বিক্রি করেছি। কেবল লিথুয়ানিয়ান রেকর্ডগুলির একটি সূচিকিত দৃষ্টিভঙ্গি তৈরি করে, এমএস ডকুমেন্টেশনে বর্ণিত অনুসারে আমরা আমাদের রেকর্ডগুলি সূচিযুক্ত ক্যাশে রাখতে পারি। ২০০৮ সালে আমরা যখন লিথুয়ানিয়ান বিক্রয়ের জন্য আমাদের প্রতিবেদনগুলি চালনা করি, তখন আমাদের ক্যোয়ারী কেবলমাত্র 7 টি (লগ 2 (100) কিছু অব্যবহৃত পাতার সাথে) গভীরতার সাথে একটি সূচীর মাধ্যমে অনুসন্ধান করবে। আমরা যদি ভিউউ ব্যতীত একই জিনিসটি করি এবং কেবল সারণীতে সূচকগুলির উপর নির্ভর করে থাকি তবে আমাদের 21 ডিগ্রি অনুসন্ধানের গভীরতার সাথে একটি সূচী গাছটি অতিক্রম করতে হবে!

স্পষ্টতই, ভিউ নিজেই আমাদের সূচকটির সহজ ব্যবহারের চেয়ে পারফরম্যান্স সুবিধা (3x) সরবরাহ করবে। আমি একটি বাস্তব-বিশ্বের উদাহরণ ব্যবহার করার চেষ্টা করেছি তবে আপনি নোট করবেন যে লিথুয়ানিয়ান বিক্রয়গুলির একটি সাধারণ তালিকা আমাদের আরও বেশি সুবিধা দেবে।

নোট করুন যে আমি আমার উদাহরণের জন্য কেবল একটি সরল বি-ট্রি ব্যবহার করছি। যদিও আমি মোটামুটি নিশ্চিত হয়েছি যে এসকিউএল সার্ভার একটি বি-গাছের কিছু বৈকল্পিক ব্যবহার করে, আমি বিশদটি জানি না। যাইহোক, পয়েন্টটি ধরে রাখে।

আপডেট 3: একটি সূচক ভিউ অন্তর্নিহিত টেবিলের উপরে রাখা সূচকটি ব্যবহার করে কিনা তা নিয়ে প্রশ্ন উঠেছে। এটি হ'ল প্যারাফ্রেজ করার জন্য: "একটি সূচীকৃত দর্শন একটি স্ট্যান্ডার্ড সূচকের সমতুল্য এবং এটি দর্শনে নতুন বা অনন্য কিছুই সরবরাহ করে না।" যদি এটি সত্য হয় তবে অবশ্যই উপরের বিশ্লেষণটি ভুল হবে! মাইক্রোসফ্ট ডকুমেন্টেশন থেকে আমার একটি উদ্ধৃতি সরবরাহ করা যাক যা দেখায় যে আমি কেন এই সমালোচনা বৈধ বা সত্য নয়:

ক্যোয়ারী পারফরম্যান্স উন্নত করতে সূচিপত্র ব্যবহার করা কোনও নতুন ধারণা নয়; তবে, সূচিযুক্ত ভিউ অতিরিক্ত কর্মক্ষমতা সুবিধা সরবরাহ করে যা মানক সূচকগুলি ব্যবহার করে অর্জন করা যায় না।

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


28
হ্যাঁ, সূচিযুক্ত দর্শনগুলি নাটকীয়ভাবে পারফরম্যান্সকে উন্নত করতে পারে। তবে সূচকযুক্ত দর্শনগুলি কেবল "দর্শন" নয় এবং সাধারণভাবে বলতে গেলে সাধারণ "দর্শন" তাদের সম্পর্কিত প্রশ্নের থেকে দ্রুত হয় না।
ব্র্যাডিসি

10
@ চারেলস - এটি সূচক কিনা তা বিবেচনাধীন নয়, একটি দৃশ্য সূচকটি
উত্সাহিত

193
/ প্রশংসা করুন @ মার্ক তার মাঠ দাঁড়িয়ে এবং যুক্তিযুক্তভাবে এই এক বিতর্ক জন্য
অন্নকাটা

17
ওহ, মানুষ, আমি এই এক উপর 8 ডাউনভোটস পেয়েছি! আমি আশ্চর্য হয়েছি যে চার্লসের সাহস না নিয়ে তাদের বক্তব্যটি তর্ক করার পক্ষে লোকেরা এত তাড়াতাড়ি কমবে।
মার্ক ব্রিটিংহাম

8
যেহেতু একটি টেবিলটিতে কেবল একটি ক্লাস্টারডি সূচক থাকতে পারে এবং আপনি একটি দৃশ্যে একটি পৃথক ক্লাস্টার সূচক তৈরি করতে পারেন, (যেহেতু ক্লাস্টারড সূচীর ক্ষেত্রগুলি স্বাধীনভাবে সূচক পৃষ্ঠাগুলিতে স্থির থাকে) তাই এটি একটি প্রতারণা (ওয়ার্ক-অরানড?) That আপনাকে এক টেবিলের উপর টিডব্লিউও ক্লাস্টারযুক্ত সূচক পেতে দেয়।
চার্লস বেতানা

50

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

তাই বলা হয়, SQL সার্ভার 2000 এবং উপরে না একটি বৈশিষ্ট্য বলা আছে সূচিবদ্ধ দেখেছে যে পারেন ব্যাপকভাবে কর্মক্ষমতা উন্নত, কয়েক আদেশ সহকারে সঙ্গে

  1. প্রতিটি দর্শনকে একটি সূচীকৃত দর্শন হিসাবে তৈরি করা যায় না; তারা একটি অনুসরণ করতে হবে নির্দেশিকা নির্দিষ্ট সেট , যা (অন্যান্য বিধিনিষেধ মধ্যে) মানে তোমার মত সাধারণ প্রশ্নের সাথে উপাদানের অন্তর্ভুক্ত থাকতে পারে না COUNT, MIN, MAX, অথবা TOP
  2. সূচী দর্শনগুলি টেবিলে সূচীর মতো ডাটাবেসে শারীরিক স্থান ব্যবহার করে।

এই নিবন্ধটি অতিরিক্ত বেনিফিট এবং সূচিযুক্ত দর্শনগুলির সীমাবদ্ধতার বর্ণনা দেয় :

আপনি পারেন…

  • ভিউ সংজ্ঞা একই ডাটাবেসে এক বা একাধিক টেবিলগুলি উল্লেখ করতে পারে।
  • একবার অনন্য ক্লাস্টারড সূচক তৈরি হয়ে গেলে, ভিউটির বিপরীতে অতিরিক্ত নন-ক্ল্লাস্টার্ড সূচক তৈরি করা যেতে পারে।
  • অন্তর্নিহিত টেবিলগুলিতে আপনি ডেটা আপডেট করতে পারেন - সন্নিবেশ, আপডেট, মুছে ফেলা এবং এমনকি ছাঁটাই সহ।

আপনি পারবেন না…

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

3
সম্পূর্ণরূপে একমত নয় ... একটি ভিউ থেকে পড়া এসকিউএলকে আবারও লেখার অনুমতি দেয় .. এবং এটি সাধারণত দর্শন থেকে (ভিউয়ের ডাম্পের চেয়ে) দ্রুত পড়তে পারে।
অ্যারন কেম্পফ

অ্যারোনক্যাম্পফ, আমি সে সম্পর্কে কিছু রেফারেন্স দেখতে চাই, এটি আমার অভিজ্ঞতা হয়নি। আমি যখন "এসকিউএল পুনর্লিখিত দেখুন" সন্ধান করি, তখন আমি প্রাপ্ত সমস্ত ফলাফল এসকিউএল সার্ভার নয়, ওরাকলকে উল্লেখ করি, যেমন ডকসস.ওরকল
সিডি /

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

@ অ্যারোনকিম্প এটি নিশ্চিত নন যে এটি মূল প্রশ্নটির মতো একই পরিস্থিতি (যা কোনও প্রশ্নের সন্ধানে বনাম সেই একই প্রশ্নটি রাখছে)। যাইহোক, আমি দেখতে পাচ্ছি না যে কোনও টেবিলের মধ্যে কোনও ভিউ বাস্তবায়ন কীভাবে এটিকে স্লুয়ার করে তুলবে (যদি আপনার নতুন সারণীতে ভাল সূচক না থাকে তবে)।
ব্র্যাডিসি 10'13

1
ব্র্যাড; আমি এই পরিস্থিতিতে আমার 99% পারফরম্যান্সের দৃশ্যগুলি কীভাবে সংরক্ষণ করছি তার সম্পর্কে আমি একটি সত্যিই খারাপ ব্লগ পোস্ট লিখেছিলাম .. আমি আরও কয়েকটি নিবন্ধ লেখার পরিকল্পনা করছি, তবে আমি জানি যে এটি সম্পর্কে আরও একটি টোন দেওয়া দরকার। .এটি একবার দেখে এবং আমার বিবরণ সম্পর্কে আপনি কী মনে করেন তা বলার ব্যাপারে আপনার কি আপত্তি আছে? আমি জানি এটি আরও বেশি অর্থবহ হবে না (যতক্ষণ না আমি ২-৩ টি অন্যান্য নিবন্ধ না পেয়ে) .. তবে আমি দর্শনের প্রেমে পাগল হয়েছি এবং আমি দীর্ঘকাল ধরে আছি! accessadp.com/2013/01/22/do-views-increase-performance
হারুন

14

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

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


14

সম্পাদনা: আমি ভুল ছিলাম, এবং আপনার উপরে উপরে উত্তরগুলির উত্তর দেখা উচিত

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

আমি একটি মাঝারি আরও জটিল উদাহরণ সহকারে উপস্থিত হব এবং এটি নিজের দেখার সময় হবে।


1
দেখার জন্য অন্য কারণ হ'ল ভূমিকা ভিত্তিক মডেলগুলিতে অ্যাক্সেস নিয়ন্ত্রণে সহায়তা করা
অন্নাকাট

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

7

আপনি যদি একটি বস্তুগত দৃষ্টি তৈরি করেন ( স্কিমা বাঁধাই সহ ) এটি আরও দ্রুত হতে পারে । অ-বস্তুগত দর্শনগুলি নিয়মিত ক্যোয়ারির মতোই সম্পাদন করে।


স্কিমাবাইন্ডিংয়ের পারফরম্যান্সের সাথে খুব একটা সম্পর্ক নেই, এটি ভিউর স্কিমাকে অন্তর্নিহিত টেবিলের সাথে বেঁধে রাখে যাতে এটি সিঙ্কে থাকে এবং সূচিযুক্ত দর্শনগুলির জন্য প্রাক-রেক হয়।
স্যাম জাফরন

5

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


এটাই আমার বোঝাপড়া: ব্যাপারটি ব্যবহার করত, আর হয় না
অন্নাতক

পারফরম্যান্সের দৃষ্টিকোণ থেকে নয় - অ্যাক্সেস সীমাবদ্ধতার উপায় হিসাবে কাজ করে। তবে এটি অন্য বিষয় হবে। ;)
আননজেআর

ওহ, নিশ্চিত ভিউ ব্যবহার করার অনেকগুলি ভাল কারণ, কাঁচা ক্যোয়ারী ব্যবহার করার জন্য একক নয়: পি
অনাকাটা

4

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


ধন্যবাদ জর্ডান ... শুনে শুনে আনন্দিত যে এই সমস্ত তত্ত্বটি বাস্তব বিশ্বে কার্যকর হয়েছে।
মার্ক ব্রিটিংহাম

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

2

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


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

1

এটি সব পরিস্থিতির উপর নির্ভর করে। এমএস এসকিউএল সূচী দর্শনগুলি একটি সাধারণ ভিউ বা ক্যোয়ারির চেয়ে দ্রুত হয় তবে সূচীকৃত দর্শনগুলি মিররযুক্ত ডেটাবেস ইনওরিনমেন্ট (এমএস এসকিউএল) ব্যবহার করা যায় না।

যে কোনও ধরণের লুপের একটি ভিউ গুরুতর ধীরগতির কারণ হতে পারে কারণ প্রতিবার লুপটিতে ডাকা হওয়ার সাথে দেখাটি পুনরায় তৈরি করা হয়। প্রশ্ন হিসাবে একই। এই পরিস্থিতিতে আপনার ডেটা লুপ করে রাখতে # বা @ ব্যবহার করে একটি অস্থায়ী টেবিলটি কোনও ভিউ বা কোয়েরির চেয়ে দ্রুত।

সুতরাং এটি সব পরিস্থিতির উপর নির্ভর করে।


0

কোনও ব্যবহারিক ভিন্ন নেই এবং আপনি বিওএল পড়লে দেখতে পাবেন যে কখনও কখনও আপনার সরল পুরাতন এসকিউএল নির্বাচন * এক্স থেকে এক্স প্ল্যান ক্যাচিং ইত্যাদির সুবিধা নেয় etc.


0

কার্যকর করার পরিকল্পনাটি সংরক্ষণ করার ক্ষেত্রে কিছুটা তুচ্ছ লাভ হওয়া উচিত, তবে এটি তুচ্ছ হবে।


0

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

এখন, আপনি যদি একটি জটিল ক্যোয়ারী করছেন, দৃশ্যটি তৈরি করুন।


0

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


আমরা কীভাবে কোয়েরিটি লিখছি / ডিজাইন করছি তা অত্যন্ত গুরুত্বপূর্ণ।
kta

আমি টেবিল থেকে ফিরে আসা ডেটা সীমাবদ্ধ করার জন্য এবং তারপরে সমস্ত কাজ / যোগ দেওয়া ইত্যাদিতে সিটিই ব্যবহার করে দেখতে পেয়েছি
সিটিইর

0

কোনও ভিউ থেকে বা কোনও টেবিল থেকে নির্বাচন করা খুব বেশি অর্থবোধ করে না।

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

আপনি দ্রুত অনুসন্ধানের প্রয়োজনীয়তার জন্য দর্শনগুলিতে সূচক তৈরি করতে পারেন। http://technet.microsoft.com/en-us/library/cc917715.aspx

আপনি যদি স্কেল ইঞ্জিনের চেয়ে '% ...%' এর মতো অনুসন্ধান করে থাকেন তবে পাঠ্য কলামের কোনও সূচী থেকে উপকার পাবেন না। আপনি যদি আপনার ব্যবহারকারীদের '...%' এর মতো অনুসন্ধান করতে বাধ্য করতে পারেন তবে তার চেয়ে দ্রুত হবে

এসপ ফোরামগুলিতে উত্তর উল্লেখ করা হয়েছে: https://forums.asp.net/t/1697933.aspx?Which+is+f++++++++++++++++able +++


0

সমস্ত প্রত্যাশার বিপরীতে, কিছু পরিস্থিতিতে ভিউগুলি ধীর গতির হয়।

আমি সম্প্রতি এটি আবিষ্কার করেছি যখন আমার সাথে ডেটাতে সমস্যা হয়েছিল যা ওরাকল থেকে টানা হয়েছিল যা অন্য ফর্ম্যাটে ম্যাসেজ করা দরকার। 20k উত্স সারি হতে পারে। একটি ছোট টেবিল। এটি করার জন্য আমরা ওরাকল ডেটাটি কোনও টেবিলের মধ্যে অপরিবর্তিত হিসাবে আমদানি করেছিলাম এবং তারপরে ডেটা বের করার জন্য ভিউগুলি ব্যবহার করি। আমাদের মতামতগুলির ভিত্তিতে গৌণ মতামত ছিল। হতে পারে 3-4 স্তরের দর্শন।

চূড়ান্ত প্রশ্নগুলির মধ্যে একটি, যা 200 সারিগুলিকে 45 মিনিটেরও বেশি সময় নিতে পারে! এই ক্যোয়ারী দর্শনের একটি ক্যাসকেডের ভিত্তিতে ছিল। সম্ভবত 3-4 স্তর গভীর।

আমি প্রতিটি মতামতকে প্রশ্নে নিতে পারি, এর এসকেএলটিকে একটি নেস্টেড ক্যোয়ারিতে sertোকাতে পারি এবং কয়েক সেকেন্ডের মধ্যে এটি কার্যকর করতে পারি।

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

এমনকি অদ্ভুতরূপটি ছিল যে আমাদের ডাটাবেসটিতে উত্স সারিগুলির সীমাবদ্ধতার কিছুটা চাপ না দেওয়া পর্যন্ত কার্য সম্পাদন ঠিক ছিল, কয়েক দিনের ব্যবধানে একটি খাড়া খালি নামিয়ে দেওয়া সম্পাদন করে - আরও কয়েকটি উত্সের সারিগুলি এটি গ্রহণ করেছিল।

সুতরাং, ভিউগুলি থেকে টানা যা ভিউগুলি থেকে টানা কোয়েরিগুলি ব্যবহার করা নেস্টেড ক্যোয়ারীর চেয়ে অনেক ধীর - যা আমার পক্ষে কোনও ধারণা রাখে না।


-1

আমি এই থ্রেড জুড়ে ছুটে এসেছি এবং প্রাপ্যতা গ্রুপগুলি ব্যবহার করার সময় বিবেচনা করার মতো কিছু হিসাবে ব্রেন্ট ওজার থেকে এই পোস্টটি ভাগ করে নিতে চেয়েছিলাম।

ব্রেন্ট ওজার বাগ রিপোর্ট

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