Распределение памяти при создании базы данных в SQL Server

Для эталонного проекта, над которым я сейчас работаю, требуется создание нескольких баз данных на SQL Server. Я использую экземпляр Enterprise Edition на виртуальной машине с 8 ГБ ОЗУ и 4-ядерным процессором. Я хотел создать фиктивные базы данных без данных. У меня есть скрипт ниже для генерации скрипта создания базы данных.

    create table createdb
    (
    dbname varchar(100),
    createdbscript varchar(max)
    )

    DECLARE 
    @query as varchar(max), @NUM AS INT
    SET @NUM = 1
    CREATE TABLE #db_names(dbname varchar(250))

    WHILE(@NUM <1001)
    BEGIN
        INSERT INTO #db_names values('NUM'+cast(@NUM as varchar))
        SET @NUM = @NUM+1
    END

    SET @query = ''
    insert into createdb 
    SELECT dbname, @query + 'CREATE DATABASE [' + dbname + ']  
            CONTAINMENT = NONE
            ON  PRIMARY 
                ( NAME = N''' + dbname + ''', 
                  FILENAME = N''c:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\' + dbname +'.mdf'' , 
                  SIZE = 10240KB , 
                  FILEGROWTH = 1024KB )
            LOG ON 
                ( NAME = N''' + dbname + '_log''' +', 
                  FILENAME = N''c:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\' + dbname + '_log' +'.ldf'' , 
                  SIZE = 512KB , 
                  FILEGROWTH = 256KB )
    ' FROM #db_names

    select * from createdb
    drop table #db_names

Я начал выполнять команды создания базы данных в количестве 100 штук. Он забил память моего сервера. Через некоторое время пакет из 2 команд создания базы данных был трудным.

Я хотел понять, как происходит распределение памяти для такого рода операций? Каков наилучший способ создания нескольких баз данных? Какие аппаратные изменения могут повлиять на эту производительность?

0 ответов

Другие вопросы по тегам