নিম্নলিখিত সহজ MCVE বিবেচনা করুন:
SET STATISTICS IO, TIME OFF;
USE tempdb;
IF OBJECT_ID(N'tempdb..#t1', N'U') IS NOT NULL DROP TABLE #t1;
CREATE TABLE #t1
(
r int NOT NULL
);
IF OBJECT_ID(N'tempdb..##t1', N'U') IS NOT NULL DROP TABLE ##t1;
CREATE TABLE ##t1
(
r int NOT NULL
);
IF OBJECT_ID(N'dbo.s1', N'U') IS NOT NULL DROP TABLE dbo.s1;
CREATE TABLE dbo.s1
(
r int NOT NULL
PRIMARY KEY CLUSTERED
);
INSERT INTO dbo.s1 (r)
SELECT TOP(10000) ROW_NUMBER() OVER (ORDER BY (SELECT NULL))
FROM sys.syscolumns sc1
CROSS JOIN sys.syscolumns sc2;
GO
আমি যখন নিম্নলিখিত সন্নিবেশগুলি চালনা করি, #t1
তখন টেম্প টেবিলের জন্য কোনও পরিসংখ্যান I / O প্রদর্শন করে না। যাইহোক, in োকানো টেম্প টেবিলের জন্য পরিসংখ্যানগুলি I / O প্রদর্শন ##t1
করে ।
SET STATISTICS IO, TIME ON;
GO
INSERT INTO #t1 (r)
SELECT r
FROM dbo.s1;
পরিসংখ্যান আউটপুট:
এসকিউএল সার্ভার পার্স এবং সংকলন সময়: সিপিইউ সময় = 0 এমএস, অতিবাহিত সময় = 1 এমএস। সারণী 'এস 1'। স্ক্যান কাউন্ট 1, লজিকাল রিডিজ 19, ফিজিকাল রিড 0, রিড-ফরোডড রিড 0, লব লজিকাল রিড 0, লব ফিজিকাল 0, লব রিড-ফরোয়ার্ড 0 এসকিউএল সার্ভার এক্সিকিউশন টাইমস: সিপিইউ সময় = 16 এমএস, অতিবাহিত সময় = 9 এমএস। (10000 সারি প্রভাবিত)
INSERT INTO ##t1 (r)
SELECT r
FROM dbo.s1;
এসকিউএল সার্ভার পার্স এবং সংকলন সময়: সিপিইউ সময় = 0 এমএস, অতিবাহিত সময় = 1 এমএস। সারণী '## টি 1'। স্ক্যান গণনা 0, লজিকাল 10010, শারীরিক 0 0, পঠন-এগিয়ে 0, লব লজিকাল রিড 0, লব শারীরিক পাঠ 0, লব পঠন-এগিয়ে 0 0 স্ক্যান সারণী 'এস 1'। স্ক্যান কাউন্ট 1, লজিকাল রিডিজ 19, ফিজিকাল রিড 0, রিড-ফরোডড রিড 0, লব লজিকাল রিড 0, লব ফিজিকাল 0, লব রিড-ফরোয়ার্ড 0 এসকিউএল সার্ভার এক্সিকিউশন টাইমস: সিপিইউ সময় = 47 এমএস, অতিবাহিত সময় = 45 এমএস। (10000 সারি প্রভাবিত)
যখন আমি কেবল এটিতে প্রবেশ করিয়ে দিচ্ছি তখন কেন ## টেম্প টেবিলে এতগুলি পাঠ হয়?