কার্যকর করার পরিকল্পনাগুলি দুর্দান্ত তবে কখনও কখনও তারা আপনাকে সত্য বলে না tell সুতরাং এখানে পারফরম্যান্স পরীক্ষার ভিত্তিতে একটি প্রমাণ রয়েছে।
(এবং নীচের লাইন - প্রতি সারির জন্য প্রকাশটি মূল্যায়ন করা হচ্ছে না)
;with t(i) as (select 0 union all select i+1 from t where i < 9)
select getdate()-1 as col1,getdate() as col2,getdate() as col3
into #t
from t t0,t t1,t t2,t t3,t t4,t t5,t t6,t t7
(100000000 সারি প্রভাবিত)
এটি ওপি ক্যোয়ারী এবং এটি চালাতে প্রায় 12 সেকেন্ড সময় নেয়
SELECT col1
FROM #t
WHERE
DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
BETWEEN col2
AND col3
;
এই ক্যোয়ারী যা কার্যকর করার আগে একটি প্যারামিটারে তারিখটি সঞ্চয় করে, একই সময় প্রায় 12 সেকেন্ড সময় নেয়।
declare @dt datetime = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
SELECT col1
FROM #t
WHERE
@dt
BETWEEN col2
AND col3
;
এবং কেবল ফলাফলগুলি যাচাই করতে -
এই ক্যোয়ারী যা কল 1 তে গণনা করে এবং তাই প্রতিটি সারির জন্য অভিব্যক্তিটি পুনরায় গণনা করতে হয় এটি চালাতে 30 সেকেন্ড সময় নেয়।
SELECT col1
FROM #t
WHERE
DATEADD(dd, 0, DATEDIFF(dd, 0, col1))
BETWEEN col2
AND col3
;
সমস্ত মেট্রিকগুলি একই মেট্রিকগুলি সম্পর্কে বার বার প্রদর্শন করে মৃত্যুদণ্ড কার্যকর করা হয়েছিল
GETDATE()
।