CPU és diszk teljesítmény mérésére, 40000 sor beszúrása egy táblába , mindegyik külön tranzakcióként (értsd , tranzakciós logba is beíródik egyenként!)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
CREATE DATABASE [beszuras] Go -- DROP TABLE [szamolotabla] use [beszuras] CREATE TABLE [dbo].[szamolotabla]( [uid] bigint IDENTITY(1,1) PRIMARY KEY NOT NULL, [szamolo] [bigint] NOT NULL, [datumido] [datetime2](7) NULL, ) ON [PRIMARY] ---------------- insert 40000 rows --DECLARE @Loops INT SET @Loops = 1 DECLARE @CPU INT SET @CPU = @@CPU_BUSY DECLARE @StartDate DATETIME SET @StartDate = GETDATE() SET NOCOUNT ON -- use [beszuras] DECLARE @i int = 1; WHILE @i < 40000 BEGIN SET @i += 1; -- WAITFOR DELAY '0:00:01'; INSERT INTO [dbo].[szamolotabla] ([szamolo], datumido) VALUES (@i,GetDate() ); END; PRINT 'Total CPU time: ' + CONVERT(varchar, @@CPU_BUSY - @CPU) PRINT 'Total milliseconds: ' + CONVERT(varchar, DATEDIFF(ms, @StartDate, GETDATE())) ----------------------- drop database EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N'beszuras' GO USE [master] GO ALTER DATABASE [beszuras] SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO USE [master] GO DROP DATABASE [beszuras] GO |
Eredmények :
7-30 másodperc diszk alrendszertől függően SSD – lassú storage, illetve CPU órajel függvényében.
Alwayson AG
30-80 sec AO AG szinkron üzemmód.
CPU mérése:
SELECT SUM(CONVERT(BIGINT, o1.szamolo) + CONVERT(BIGINT, o2.szamolo) )
FROM szamolotabla o1
CROSS JOIN szamolotabla o2
Futási idő: 14-120 másodperc között.
Attól függően, hogy mennyi a CPU órajele, hány Core van benne na és mennyi az SQL párhuzamosítási korlátja (MAXDOP).