我正在尝试测试MS Sql Server 的一些配置设置,FILEGROUP
为此我希望填满我的FILEGROUP
磁盘,以便它开始填充 2nd FILEGROUP
。
我刚刚创建了一个虚拟表,PRIMARY FILEGROUP
并有以下简单的 sql 来插入一些数据。它只是花了很长时间,慢慢地填充它。有没有更好的方法来快速填充一个真正占用大量硬盘空间的垃圾数据表?
--IF OBJECT_ID('dbo.__RandomData', 'U') IS NOT NULL
--BEGIN
-- DROP TABLE dbo.__RandomData;
-- CREATE TABLE dbo.__RandomData (
-- RowId INT IDENTITY(1,1) NOT NULL,
-- SomeInt INT,
-- SomeBit BIT,
-- SomeVarchar VARCHAR(10),
-- SomeDateTime DATETIME,
-- SomeNumeric NUMERIC(16,2) )
--END
--GO
DECLARE @count INT
SET @count = 1
WHILE @count <= 1000000
BEGIN
INSERT INTO dbo.__RandomData
SELECT @count,
CASE WHEN DATEPART(MILLISECOND, GETDATE()) >= 500 THEN 0 ELSE 1 END [SomeBit],
CHAR((ABS(CHECKSUM(NEWID())) % 26) + 97) + CHAR((ABS(CHECKSUM(NEWID())) % 26) + 97) +
CHAR((ABS(CHECKSUM(NEWID())) % 26) + 97) + CHAR((ABS(CHECKSUM(NEWID())) % 26) + 97) +
CHAR((ABS(CHECKSUM(NEWID())) % 26) + 97) + CHAR((ABS(CHECKSUM(NEWID())) % 26) + 97) +
CHAR((ABS(CHECKSUM(NEWID())) % 26) + 97) + CHAR((ABS(CHECKSUM(NEWID())) % 26) + 97) +
CHAR((ABS(CHECKSUM(NEWID())) % 26) + 97) + CHAR((ABS(CHECKSUM(NEWID())) % 26) + 97) [SomeVarchar],
DATEADD(MILLISECOND, (ABS(CHECKSUM(NEWID())) % 6000) * -1,
DATEADD(MINUTE, (ABS(CHECKSUM(NEWID())) % 1000000) * -1, GETDATE())) [SomeDateTime],
(ABS(CHECKSUM(NEWID())) % 100001) + ((ABS(CHECKSUM(NEWID())) % 100001) * 0.00001) [SomeNumeric]
SET @count += 1
END