日期:2014-05-18  浏览次数:20636 次

为数据库分配存储空间的问题,分配指定的空间之后,数据库好像又“自动”收缩?
为数据库分配存储空间的问题,分配指定的空间之后,数据库好像又“自动”收缩?

但是,当数据增长到需要增加空间时,“自动”增加数据库存储空间时,占用CPU达到100%~200%甚至更多? 导致对数据库的访问阻塞5~10多分钟。

甚至崩溃。

如何固定分配数据库存储的空间?或者减低当数据库文件自动增长时,减少CPU的占用率和时间?

------解决方案--------------------
SQL code
USE master;
GO
IF DB_ID (N'Sales') IS NOT NULL
DROP DATABASE Sales;
GO
-- Get the SQL Server data path
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
                  FROM master.sys.master_files
                  WHERE database_id = 1 AND file_id = 1);

-- execute the CREATE DATABASE statement 
EXECUTE ('CREATE DATABASE Sales
ON 
( NAME = Sales_dat,
    FILENAME = '''+ @data_path + 'saledat.mdf'',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
    FILENAME = '''+ @data_path + 'salelog.ldf'',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB )'
);
GO

------解决方案--------------------
在数据库属性中..设置文件的自动增长..
你可以设置为自动增长..然后设置一个百分比值..
也可以不设置自动增长..提供一个最大值.
------解决方案--------------------
为数据库分配存储空间的问题,分配指定的空间之后,数据库好像又“自动”收缩? 

---

你怎么分配的空间?


------解决方案--------------------
探讨
引用:
在数据库属性中..设置文件的自动增长..
你可以设置为自动增长..然后设置一个百分比值..
也可以不设置自动增长..提供一个最大值.

这些,我了解,也尝试这么设置过。。。

问题是:当数据文件自动增长时,SQL Server系统占用CPU比例超高,占用时间很长。
因此,我尝试先给数据库文件分配一个“足够”大的存储空间,避免它“自动增长”时耗费CPU占用率。可是,当我为它分配了10G空间后,过些时候…

------解决方案--------------------
你是否设置了数据库为自动收缩??
------解决方案--------------------
alter database MyTest
set auto_shrink off
------解决方案--------------------
探讨
引用:
在数据库属性中..设置文件的自动增长..
你可以设置为自动增长..然后设置一个百分比值..
也可以不设置自动增长..提供一个最大值.

这些,我了解,也尝试这么设置过。。。

问题是:当数据文件自动增长时,SQL Server系统占用CPU比例超高,占用时间很长。
因此,我尝试先给数据库文件分配一个“足够”大的存储空间,避免它“自动增长”时耗费CPU占用率。可是,当我为它分配了10G空间后,过…