এটি সত্যই সূচী এবং ডেটা ধরণের উপর নির্ভর করে।
উদাহরণস্বরূপ স্ট্যাক ওভারফ্লো ডাটাবেস ব্যবহার করে, ব্যবহারকারীদের টেবিলটি দেখতে এটির মতো:
এটির আইডি কলামে একটি পিকে / সিএক্স রয়েছে। সুতরাং এটি আইডি অনুসারে সাজানো টেবিলের সম্পূর্ণতা।
একমাত্র সূচক হিসাবে, এসকিউএলকে ইতিমধ্যে সেখানে না থাকলে পুরো জিনিসটি (এলওবি কলামগুলি স্যানস) মেমোরিতে পড়তে হবে।
DBCC DROPCLEANBUFFERS-- Don't run this anywhere near prod.
SET STATISTICS TIME, IO ON
SELECT u.Id
INTO #crap1
FROM dbo.Users AS u
পরিসংখ্যানের সময় এবং আইও প্রোফাইলটি দেখতে এমন দেখাচ্ছে:
Table 'Users'. Scan count 7, logical reads 80846, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
SQL Server Execution Times:
CPU time = 2406 ms, elapsed time = 446 ms.
আমি যদি শুধু আইডিতে একটি অতিরিক্ত অবিবাহিত সূচক যুক্ত করি
CREATE INDEX ix_whatever ON dbo.Users (Id)
আমার কাছে এখন আরও অনেক ছোট সূচক রয়েছে যা আমার জিজ্ঞাসাকে সন্তুষ্ট করে।
DBCC DROPCLEANBUFFERS-- Don't run this anywhere near prod.
SELECT u.Id
INTO #crap2
FROM dbo.Users AS u
এখানে প্রোফাইল:
Table 'Users'. Scan count 7, logical reads 6587, physical reads 0, read-ahead reads 6549, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
SQL Server Execution Times:
CPU time = 2344 ms, elapsed time = 384 ms.
আমরা আরও কম পড়া এবং সামান্য সিপিইউ সময় সাশ্রয় করতে সক্ষম're
আপনার টেবিল সংজ্ঞা সম্পর্কে আরও তথ্য ব্যতীত, আপনি যা আরও ভালভাবে পরিমাপ করার চেষ্টা করছেন তা আমি পুনরুত্পাদন করার চেষ্টা করতে পারি না।
তবে আপনি বলছেন যে সেই একাকী কলামে একটি নির্দিষ্ট সূচক না থাকলে অন্যান্য কলাম / ক্ষেত্রগুলিও স্ক্যান হবে? এটি কি কেবল সারি টেবিলগুলির নকশার অন্তর্নিহিত একটি অপূর্ণতা? কেন অপ্রাসঙ্গিক ক্ষেত্রগুলি স্ক্যান করা হবে?
হ্যাঁ, এটি সারি সারি সারণিতে নির্দিষ্ট specific তথ্য পৃষ্ঠাগুলিতে সারি দ্বারা ডেটা সংরক্ষণ করা হয়। এমনকি যদি পৃষ্ঠার অন্যান্য ডেটা আপনার প্রশ্নের সাথে অপ্রাসঙ্গিক হয় তবে সেই পুরো সারি> পৃষ্ঠা> সূচকটি মেমোরিতে পড়তে হবে। আমি এটি বলব না যে অন্যান্য কলামগুলি যে পরিমাণ পৃষ্ঠাগুলিতে রয়েছে সেগুলি কোয়েরির সাথে সম্পর্কিত একক মান পুনরুদ্ধার করতে স্ক্যান করা হয়।
ওলের ফোনবুক উদাহরণ ব্যবহার করে: আপনি কেবল ফোন নম্বরগুলি পড়ছেন, পৃষ্ঠাটি সরিয়ে দেওয়ার পরেও আপনি ফোন নম্বর সহ শেষ নাম, প্রথম নাম, ঠিকানা ইত্যাদি সরিয়ে দিচ্ছেন।