আমি মনে করি এটির জন্য আমার আংশিক ব্যাখ্যা থাকতে পারে তবে দয়া করে এটিকে নষ্ট করে দিতে বা কোনও বিকল্প পোস্ট করতে দ্বিধা বোধ করবেন না। এক্সপ্লোরেশন পরিকল্পনায় শীর্ষের প্রভাবটি তুলে ধরে @ মার্টিনস্মিথ অবশ্যই কিছু একটা করতে পারেন।
সহজ কথায় বলতে গেলে, 'আসল সারি গণনা' অপারেটর দ্বারা চালিত সারিগুলির একটি গণনা নয়, এটি অপারেটরের গেটনেক্সট () পদ্ধতিটি কল করার সংখ্যা।
বিওএল থেকে নেওয়া :
শারীরিক অপারেটররা সূচনা, তথ্য সংগ্রহ এবং বন্ধ করে দেয়। বিশেষত, শারীরিক অপারেটর নিম্নলিখিত তিনটি পদ্ধতি কলের উত্তর দিতে পারে:
- উদ্যোগ (): দীক্ষা () পদ্ধতিটি একটি শারীরিক অপারেটরকে নিজেই আরম্ভ করার জন্য এবং প্রয়োজনীয় ডেটা স্ট্রাকচার সেটআপ করার কারণ করে। শারীরিক অপারেটর অনেক ইনস () কল পেতে পারে, যদিও সাধারণত কোনও শারীরিক অপারেটর কেবল একটিই পায়।
- গেটনেক্সট (): গেটনেক্সট () পদ্ধতিটি দৈহিক অপারেটরটিকে প্রথম, বা পরবর্তী সারির ডেটা পাওয়ার জন্য তৈরি করে। শারীরিক অপারেটর শূন্য বা অনেক গেটনেক্সট () কল পেতে পারে।
- ক্লোজ (): ক্লোজ () পদ্ধতিটি শারীরিক অপারেটরকে কিছু ক্লিন-আপ ক্রিয়াকলাপ সম্পাদন করে এবং নিজেকে বন্ধ করে দেয়। একটি শারীরিক অপারেটর কেবল একটি ক্লোজ () কল পায়।
গেটনেক্সট () পদ্ধতিটি ডেটার এক সারি ফেরত দেয় এবং শোপ্লান আউটপুটটিতে সেট স্ট্যাটিস্টিকস প্রোফাইলে অন বা সেট স্ট্যাটিক্স এক্সএমএল চালু করে যে পরিমাণ বার বলা হয় তাকে প্রকৃতরূপ হিসাবে প্রদর্শিত হয়।
সম্পূর্ণতার জন্য, সমান্তরাল অপারেটরগুলির উপর একটি সামান্য ব্যাকগ্রাউন্ড দরকারী useful পুনঃস্থাপন স্ট্রিম বা স্ট্রিম অপারেটরগুলি বিতরণ করে সমান্তরাল পরিকল্পনায় কাজ একাধিক স্ট্রমে বিতরণ করা হয়। এই চারটি পদ্ধতির মধ্যে একটি ব্যবহার করে থ্রেডগুলির মধ্যে সারি বা পৃষ্ঠাগুলি বিতরণ করে:
- হ্যাশ সারিতে কলামগুলির একটি হ্যাশের উপর ভিত্তি করে সারিগুলি বিতরণ করে
- রাউন্ড-রবিন একটি লুপের থ্রেডের তালিকার মাধ্যমে পুনরাবৃত্তি করে সারিগুলি বিতরণ করে
- ব্রডকাস্ট সমস্ত থ্রেডে সমস্ত পৃষ্ঠা বা সারি বিতরণ করে
- চাহিদা বিভাজন শুধুমাত্র স্ক্যানের জন্য ব্যবহৃত হয়। থ্রেডস স্পিন হয়ে যায়, অপারেটর থেকে ডেটা পৃষ্ঠার জন্য অনুরোধ করে, এটি প্রক্রিয়া করে এবং সম্পন্ন হওয়ার পরে একটি আরও পৃষ্ঠার অনুরোধ করে।
প্রথম বিতরণ স্ট্রিম অপারেটর (পরিকল্পনার বেশিরভাগ অংশে) ধ্রুবক স্ক্যান থেকে উত্পন্ন সারিগুলিতে চাহিদা বিভাজন ব্যবহার করে। তিনটি থ্রেড রয়েছে যা মোট 10 'আসল সারি' এর জন্য getNext () 6, 4 এবং 0 বার কল করে:
<RunTimeInformation>
<RunTimeCountersPerThread Thread="2" ActualRows="6" ActualEndOfScans="1" ActualExecutions="1" />
<RunTimeCountersPerThread Thread="1" ActualRows="4" ActualEndOfScans="1" ActualExecutions="1" />
<RunTimeCountersPerThread Thread="0" ActualRows="0" ActualEndOfScans="0" ActualExecutions="0" />
</RunTimeInformation>
পরের ডিস্ট্রিবিউশন অপারেটরে আমাদের আবার তিনটি থ্রেড রয়েছে, এবার মোট 100 এর জন্য 50, 50 এবং 0 কল সহ গেটনেক্সট () এ কল করুন:
<RunTimeInformation>
<RunTimeCountersPerThread Thread="2" ActualRows="50" ActualEndOfScans="1" ActualExecutions="1" />
<RunTimeCountersPerThread Thread="1" ActualRows="50" ActualEndOfScans="1" ActualExecutions="1" />
<RunTimeCountersPerThread Thread="0" ActualRows="0" ActualEndOfScans="0" ActualExecutions="0" />
</RunTimeInformation>
এটি পরবর্তী সমান্তরাল অপারেটর যা কারণ এবং ব্যাখ্যা সম্ভবত প্রদর্শিত হবে।
<RunTimeInformation>
<RunTimeCountersPerThread Thread="2" ActualRows="1" ActualEndOfScans="0" ActualExecutions="1" />
<RunTimeCountersPerThread Thread="1" ActualRows="10" ActualEndOfScans="0" ActualExecutions="1" />
<RunTimeCountersPerThread Thread="0" ActualRows="0" ActualEndOfScans="0" ActualExecutions="0" />
</RunTimeInformation>
সুতরাং আমাদের এখন getNext () এ 11 টি কল রয়েছে, যেখানে আমরা 10 টি দেখার আশা করছিলাম।
সম্পাদনা করুন: 2011-11-13
এই মুহুর্তে আটকে গিয়ে আমি ক্লাস্টারড ইনডেক্সে চ্যাপগুলি নিয়ে উত্তর খুঁজতে গিয়েছিলাম এবং @ মাইকওয়ালশ দয়া করে এখানে @ এসকিউএলকিউকে নির্দেশনা দিয়েছেন ।