[Homework] Databases - Performance
Здравейте колеги,
Оказа се (поне за мен), че базите данни не са толковоа скучни колкото си мислех. Също така на пръв поглед скучното домашно за перформанс се оказа доста интересно ако се "заиграеш".
Наблъскването на 10000000 записа е напръв поглед проста задача и може да го решиш със следния код:
CREATE DATABASE [Test] GO
USE Test
CREATE TABLE DateAndTex
(
CurrentTime DATETIME NULL,
TextInput NVARCHAR(MAX) NULL
)
GO
INSERT INTO DateAndTex
VALUES(GETDATE(), 'ала бала');
GO 10000000
Но това отнема на моята щайга много време не изтърпях да го изчакам и да видя колко точно, ако се замислим как да подобрим перформанса ще се сетим за това, че дефоутната база е голяма 3 мб и се разшерява с 1мб. И с помоща на Google ще добавим реда: ALTER DATABASE Test MODIFY FILE
( NAME = N'Test' , SIZE = 1GB , MAXSIZE = UNLIMITED, FILEGROWTH = 100MB ) GO
До тук добре съборихме малко време :). Като помислих още малко... абе WHILE цикъла няма ли да работи по - бързо от колкото GO (н пъти). Дай да пробваме... Оказа се, че GO 10000 пъти на моята машина пълни таблицата за 7 секунди..., а като си направя while 10000 заедно с декларирането на брояча и при изчистен кеш ми ги тъпче за 4 секунди. Така че най - вероятно работи по - бързо с WHILE отколкото с GO.
Някой сеща ли се за други оптимизации?
Аз пробвам с по 10000 записа зада хвана оптимизацията.... За транзакция не се бях сетил.