এই প্রশ্নটি আইপি রেঞ্জ অনুসন্ধানটি অপ্টিমাইজ করার মতো ? তবে এটি এসকিউএল সার্ভার 2000 এ সীমাবদ্ধ।
ধরুন আমার কাছে 10 মিলিয়ন রেঞ্জ অস্থায়ীভাবে সারণিতে কাঠামোগতভাবে সজ্জিত এবং জনবহুল রয়েছে।
CREATE TABLE MyTable
(
Id INT IDENTITY PRIMARY KEY,
RangeFrom INT NOT NULL,
RangeTo INT NOT NULL,
CHECK (RangeTo > RangeFrom),
INDEX IX1 (RangeFrom,RangeTo),
INDEX IX2 (RangeTo,RangeFrom)
);
WITH RandomNumbers
AS (SELECT TOP 10000000 ABS(CRYPT_GEN_RANDOM(4)%100000000) AS Num
FROM sys.all_objects o1,
sys.all_objects o2,
sys.all_objects o3,
sys.all_objects o4)
INSERT INTO MyTable
(RangeFrom,
RangeTo)
SELECT Num,
Num + 1 + CRYPT_GEN_RANDOM(1)
FROM RandomNumbers
মান সহ সমস্ত ব্যাপ্তি আমার জানা দরকার 50,000,000
। আমি নিম্নলিখিত জিজ্ঞাসা চেষ্টা
SELECT *
FROM MyTable
WHERE 50000000 BETWEEN RangeFrom AND RangeTo
এসকিউএল সার্ভার দেখায় যে এখানে 10,951 লজিকাল রিড ছিল এবং 12 টি মিলে পুনরায় পাঠাতে প্রায় 5 মিলিয়ন সারি পড়েছিল।
আমি এই পারফরম্যান্স উন্নতি করতে পারেন? সারণীর কোনও পুনর্গঠন বা অতিরিক্ত সূচী ঠিক আছে।
contains
এবং যখন তারা অন্যান্য ডেটা যুক্ত করে বলে মনে হয় তথ্যের পরিমাণ হ্রাস করতে ভালভাবে কাজ করে ওভারহেড যা এই বিরোধিতা করে।