SQL Server建立隨機測試資料

來源:互聯網
上載者:User

標籤:

我們在做資料倉儲開發的過程中,經常需要插入大量的測試資料來測試資料庫查詢效能和計算佔用的儲存空間等。本文主要介紹下不借用第三方的工具在資料庫中直接產生大量的測試資料。

需求
  1. 每一行包含5個日期欄位和一個10個字元的字串作為主鍵;
  2. 所有的日期應該是在從今天開始2年前的資料;
  3. 每一行所有的日期應該是不同的1;
  4. 可以按照主鍵和日期欄位建立索引。
建立測試表
CREATE TABLE dbo.TestTableSize ( MyKeyField VARCHAR(10) NOT NULL,   MyDate1 DATETIME NOT NULL,   MyDate2 DATETIME NOT NULL,   MyDate3 DATETIME NOT NULL,   MyDate4 DATETIME NOT NULL,   MyDate5 DATETIME NOT NULL )
產生測試代碼
DECLARE @RowCount INT DECLARE @RowString VARCHAR(10) DECLARE @Random INT DECLARE @Upper INT DECLARE @Lower INT DECLARE @InsertDate DATETIME SET @Lower = -730 SET @Upper = -1 SET @RowCount = 0 WHILE @RowCount < 3000000 BEGIN     SET @RowString = CAST(@RowCount AS VARCHAR(10))     SELECT @Random = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0)     SET @InsertDate = DATEADD(dd, @Random, GETDATE())     INSERT INTO TestTableSize (MyKeyField ,MyDate1 ,MyDate2 ,MyDate3 ,MyDate4 ,MyDate5)     VALUES (REPLICATE(‘0‘, 10 - DATALENGTH(@RowString)) + @RowString , @InsertDate ,DATEADD(dd, 1, @InsertDate) ,DATEADD(dd, 2, @InsertDate) ,DATEADD(dd, 3, @InsertDate) ,DATEADD(dd, 4, @InsertDate))     SET @RowCount = @RowCount + 1 END
總結

本文只是提出方法的簡要概述,以插入隨機測試資料到資料庫表。另外提出是計算一個隨機數,以及基於隨機位移隨機化資料輸入的方法。這可能不是建立一個隨機的資料集的最佳方式,如果你沒有任何流行的第三方工具,它確實是個不錯的選擇。

SQL Server建立隨機測試資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.