मेरे पास एक ही सर्वर पर दो SQL सर्वर इंस्टेंस हैं:
- Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64) मानक संस्करण (64-बिट)
- Microsoft SQL सर्वर 2016 (SP1-CU5) (KB4040714) - 13.0.4451.0 (X64) एंटरप्राइज़ संस्करण (64-बिट)
sp_configure परिणाम दोनों उदाहरणों (नए 2016 विकल्पों को छोड़कर) पर समान हैं।
मैंने एक ही डिस्क फ़ोल्डर में दोनों उदाहरणों पर नए डेटाबेस बनाए हैं। ऑटोग्रॉथ पैरामीटर समान हैं।
स्वतः पूर्ण और स्वतः पूर्ण आँकड़े विकल्प बंद कर दिए जाते हैं।
फिर मैंने एक ढेर में 10000 आवेषण के साथ एक परीक्षण किया है:
set nocount on
go
create table dbo.TestInsert ( i int not null, s varchar(50) not null )
declare @d1 datetime, @d2 datetime, @i int
set @d1 = getdate()
set @i = 1
while @i <= 10000
begin
insert into dbo.TestInsert ( i, s ) select @i, replicate( 'a', 50 )
set @i = @i + 1
end
set @d2 = getdate()
select datediff(ms, @d1, @d2)
drop table dbo.TestInsert
परिणाम 1
औसत परीक्षा का समय
- 2012 - 530 मि
- 2016 - 600 एमएस
तो, 2016 लगभग 11% धीमा है।
- तब मैंने माइक्रोसेकंड में एकल डालने की अवधि देखने के लिए तालिका में सहेजे गए परिणामों के साथ एक SQL Profiler ट्रेस बनाया है।
परिणाम २
२०१२ बनाम २०१६ में एक एकल सम्मिलित अवधि का हिस्टोग्राम :
लेनदेन लॉग 'sysinos_io_virtual_file_stats से वृद्धि है:
- 2012 - 5174784 बाइट्स
- 2016 - 5171200 बाइट्स
इन परीक्षणों के दौरान दोनों उदाहरण शुरू किए जाते हैं। लेकिन हर बार एक परीक्षा केवल एक उदाहरण पर चल रही है। मैंने प्रति उदाहरण 8 जीबी रैम आवंटित किया है। क्वेरी प्लान समान हैं। प्रत्येक उदाहरण को अपने बॉक्स पर चलाना दिलचस्प होगा। लेकिन शायद एक मशीन बेहतर है, क्योंकि यहां हमारे पास कोई हार्डवेयर और पर्यावरणीय अंतर नहीं है।
प्रशन
- 2016 धीमा क्यों है?
- क्या कोई इस परीक्षण को पुन: पेश कर सकता है?