LoginSignup
0
0

More than 1 year has passed since last update.

ASE Sybaseのテーブルにテストレコードを大量挿入する方法

Posted at

ASE Sybaseのバックアップリカバリーテストを実施した時に、テスト用テーブルを作ってデータが正しく復旧できることを確認した時の手順メモ。

テスト用テーブルを作成

CREATE TABLE testtbl_0821
(
 c1 INT NOT NULL,
 c2 VARCHAR(20) NULL
)
GO

テスト用テーブルにデータを投入

-- Run a loop to insert 10000 rows
DECLARE @i INT,
        @start DATETIME

SET @i = 1
SET @start = GETDATE()

 WHILE @i <= 10000 BEGIN

 -- Start a transaction
 IF @i % 10000 = 1 BEGIN
    BEGIN TRANSACTION
    PRINT 'Transaction started'
 END

  INSERT INTO testtbl_0821 VALUES (@i, 'Sample data...')
  SET @i = @i + 1

 -- Commit after each 10,000 row
 IF @i % 100000 = 0 BEGIN
   COMMIT
   PRINT 'Committed'
 END

 END

 -- Output the execution time in seconds
 SELECT DATEDIFF(ss, @start, GETDATE())

 go
実行ログ
(1 row affected)
(1 row affected)
(1 row affected)
(1 row affected)
(1 row affected)
(1 row affected)
(1 row affected)
(1 row affected)
(1 row affected)
(1 row affected)
(1 row affected)
(1 row affected)

 -----------
           2

データが挿入されたことを確認

select count(*) from testtbl_0821
go
実行ログ
 -----------
       10000

(1 row affected)

リカバリーテストの実施

  1. DBのバックアップを取得
  2. テストテーブルのデータを削除
  3. バックアップを使ってバックアップ取得断面までDBをリカバリー
  4. データ削除前の状態に戻っている(10000件存在する)ことを確認

用が済んだらテスト用テーブルを削除

drop table testtbl_0821
go
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0