[pgsql-jp: 25544] Re: 大量のテストデータの作成

sugita @ sra.co.jp sugita @ sra.co.jp
2002年 4月 8日 (月) 18:02:05 JST


  杉田です。

From: "橋端 博士" <mitsuki @ zc5.so-net.ne.jp>
Subject: [pgsql-jp: 25543] 大量のテストデータの作成
Date: Mon, 8 Apr 2002 17:34:56 +0900

;;; 大量のデータを登録したとき、
;;; どのくらいの速度になるかを知りたいため、
;;; データの登録作業を行っているのですが、
;;; ある設計にしたがったテストデータを
;;; 何十万、何百万、手作業で入力で入力というのは
;;; 現実的ではないため、何か別の方法、もしくはツールを探しています。
;;; 検索エンジンで調べましたが、引っかかるのは商用のものばかりで、値段が張りま
;;; す。

  ある設計に従った内容のデータとするものがあればいいなとは思いつつ、ユーザ定義
関数を作成して、単純なデータ生成のために次のようにしています。数だけなら 100万、
1000 万は充分な速度です。

    sugita=# create table test (i integer, d datetime);
    create table test (i integer, d datetime);
    CREATE
    sugita=# insert into test select n, now() + n from (select gennum(5) as n) g;
    insert into test select n, now() + n from (select gennum(5) as n) g;
    INSERT 0 5
    sugita=# select * from test;
    select * from test;
     i |          d          
    ---+---------------------
     0 | 2002-04-08 00:00:00
     1 | 2002-04-09 00:00:00
     2 | 2002-04-10 00:00:00
     3 | 2002-04-11 00:00:00
     4 | 2002-04-12 00:00:00
    (5 rows)

    sugita=# select gennum(3);
     gennum 
    --------
	  0
	  1
	  2
    (3 rows)

    sugita=# select gennum(3, 2);
    select gennum(3, 2);
     gennum 
    --------
	  2
	  3
	  4
    (3 rows)

    sugita=# select gennum(3, 2, 2);
    select gennum(3, 2, 2);
     gennum 
    --------
	  2
	  4
	  6
    (3 rows)

    sugita=# select timeofday() from (select repeat(5)) r;
    select timeofday() from (select repeat(5)) r;
		  timeofday              
    -------------------------------------
     Mon Apr 08 17:59:13.779293 2002 JST
     Mon Apr 08 17:59:13.779402 2002 JST
     Mon Apr 08 17:59:13.779427 2002 JST
     Mon Apr 08 17:59:13.779451 2002 JST
     Mon Apr 08 17:59:13.779475 2002 JST
    (5 rows)

    sugita=# 


Kenji Sugita
sugita @ sra.co.jp



pgsql-jp メーリングリストの案内