• ベストアンサー

INSERT 0 1が大量に表示されて遅いです。

postgresql8.3.9のWindows版を使っています。 psql データベース < bak.sql で1GBくらいあるSQLファイルをリストアしたのですが、 INSERT 0 1が大量に表示されて遅いです。 何も表示させない or 高速版っていうものはあるのでしょうか?

  • ne5
  • お礼率4% (5/124)

質問者が選んだベストアンサー

  • ベストアンサー
  • mimzy
  • ベストアンサー率33% (32/96)
回答No.1

>INSERT 0 1が大量に表示されて遅いです。 ということはbak.sqlを開いて見ると"INSERT"コマンドが使われているんでしょうか? もしそうならpg_dumpしたときのPostgresが古いんじゃないですか。 私のはVer.8.3ですがdumpファイルをみるとcopyコマンドが使われています。 ほぼ同じ1GBのファイルですが、数秒で終わりました。

関連するQ&A

  • JDBCでのinsertについて

    JDBCを使ってDBを扱います。 データベースはPostgresqlです。 Servlet+JSP+Beanで開発しているのですが、 以下のようなinsert処理をBeanで行っています。 String sql_insert = "INSERT INTO tal_ks(cd,kbn)" + " VALUES(" + vl1 + ",'" + vl2 + "')";System.out.println(sql_insert); System.out.println("SQL文発行"); int in = stmt.executeUpdate(sql_insert); System.out.println("(SQL文発行後"); ・ ・ ・ これを行うと、例外処理には流れず 実行したかのように見えるんですが、 実際はデータがはいっておりません。 このSQLと同じものをpsqlで直接実行すると insert できました。 これは、どういうことが原因なのでしょうか? 教えていただきたいです。

    • ベストアンサー
    • Java
  • まれにinsertエラーが発生する

    VB6からWindows版PostgreSQL8.2.4へ書き込みを行っています。 まれにinsertエラーが発生する為、困っています。(2日~7日に1回) エラー時のSQLログがあり、SQL文に間違いが無いことは確認ずみです。 エラー詳細を取っておらず詳細がわかりません。 (実際に現象を発生させようとしましたが、発生しません。) 追加するテーブル自体に主キーは設定していません。 データの書き込みは15秒に2レコード位なのですが、Update文の直後のinsert文がまれに失敗します。 とりあえず、トランザクション処理で回避していますが、PostgreSQLの設定値などの変更により、回避出来るのでしょうか。 また、この様な事はよくあることなのでしょうか。 説明が分かりづらく申し訳ありませんが、 宜しくお願いします。

  • INSERTできない

    お世話になります。 PHP4.3+Windows版Postgres8.0で構築中です。 ものすごく一般的なinsert文 $sql="INSERT INTO dic (id,word,mean,hi) VALUES('$id','$word','mean','$hi')"; $result=pg_exec ($dbcon, $sql); とすると、 array value must start with "{" or dimension information と怒られてしまいます。 配列は{で始めよってことなのでしょうか。 配列でのinsert方法ってよくわからないのですが、そういう方法があるのでしょうか。 pgAdminの使い方があまりわからなくて、いいかげんな設定になっているためこんなエラーが出てしまうのかとも思うのですが、どこか確認箇所等ありましたらご指摘いただければと思います。 もう半日潰してしまいました。。。(涙 コマンドラインからも同様のエラーが返ります。 #ちなみにMySQLで動いていたものをPostgresに移植中で、プログラムには間違いない・・・と思います。 よろしくお願いいたします。

  • cronにて動かすと・・・

    はじめまして Fedora Core3 + Postgresqlの環境で開発をしています。 自動的に、バックアップをとる仕組みを作っているのですが バックアップをおこなう、shファイルに psql -f /www/sql/abc.dat abc として、一括でデータベースを復元してます 手動で、shファイルを動かすと、ちゃんと復元されるのですが cronで、このshファイルを時間設定し動かすと psql -f /www/sql/abc.dat abc が、まったく動いてなく、復元できません すみませんが どなたか、教えてください よろしくお願いします。

  • oracle10g java jdbc 大量insertの高速化

    oracle10g java jdbc 大量insertの高速化 以下のプログラムで1万件処理したところ30秒ぐらいかかりました。 まだ高速化の余地があると思うのですが、何かいい方法はありませんでしょうか? String sql = "INSERT INTO TEST3 VALUES(?,?)"; PreparedStatement ps = con.prepareStatement(sql); while(rs5.next()){ int id = rs5.getInt(1); String line = rs5.getString(2); ps.setInt(1,id); ps.setString(2,line); ps.addBatch(); } ps.executeBatch();

    • ベストアンサー
    • Java
  • psqlでのリストアの仕方

    Windows上でPostgreSQL8.0を使用しています。 DBのバックアップを毎日自動で(タスク登録して)とっています。 具体的にはバッチファイルの中で以下のようなpg_dumpコマンドを実行させています。 「pg_dump -U ユーザー名 -f %DATE:~0,4%%DATE:~5,2%%DATE:~8,2%EXPDAT.db DB名 <dmp.txt」(なお、最後のテキストファイル内にはたぶんパスワードと思われる内容が記載されています。) 通常はAdminIIIを使用してバックアップおよびリストアを行っており、上記のバッチ実行にて作成されたダンプファイルからのリストアを行ったことがありません。(拡張子がBackupでないので、AdminIIIからのリストアはできませんでした) ヘルプや書籍を参考に、psqlからのリストアを試みたのですが、そもそもどのようにコマンドを入力してよいかわかりません。 試した内容は以下の通りです。 1.psql.exeを実行 2.ホスト名、ユーザー名、パスワード、データベース名をそれぞれ入力 3.データベース名#> が表示されるので、「psql -U ユーザー名 -d データベース名 -f "c:\20070822EXPDAT.db"」と入力し実行すると、psqlという文字列に対してsyntaxエラーとなってしまいました。 そもそも、psql画面でのコマンドの入力方法がよくわかっておりません。書籍などをみるとよく「psql -U xxx -d xxx -f xxx」と書いてありますが、実際に入力するのはどこからでしょう? 担当者が退社してしまい、手探り状態で運用し始めたところです。 大変初歩的な質問で申し訳ありませんがよろしくお願いいたします。

  • mySQLでINSERT Errorとなります。

    初心者です。よろしくお願いいたします。 データを入れたいのですが、エラーとなってしまいます。 以下でデータベースとテーブルを作成し、 <?php $db_name="tori"; $tbl_name = "hato"; $db = mysql_connect('localhost', 'root', ''); if (!$db) { die('接続できません: ' . mysql_error()); } $sql = 'CREATE DATABASE tori'; if (mysql_query($sql, $db)) { echo "データベースtori の作成に成功しました\n"; } else { echo 'データベースtoriの作成に失敗しました: ' . mysql_error() . "\n";} mysql_select_db($db_name,$db) or die("データベースへの接続エラー"); $query ="create table {$tbl_name} ( id char(8) primary key, date TEXT, sex TEXT, age TEXT )TYPE=MyISAM"; mysql_query($query); $query ="INSERT INTO `houzingpark`.`hatogaya` ( id , date , sex , iro ) VALUES ( '2', 'uu', 'ii', 'po' )"; mysql_close($db); ?> 以下で入れ込みたいのですが、出来ないのです。 <?php $db_name="tori"; $tbl_name = "hato"; $db = mysql_connect('localhost', 'root', ''); if (!$db) { die('接続できません: ' . mysql_error()); } mysql_select_db($db_name,$db) or die("データベースへの接続エラー"); $sql="INSERT INTO hatogaya ( id , date , sex , iro ) VALUES ( 3, 2005-12-3, mesu, cya )"; mysql_query($sql); if(!$result){print 'INSERT Error!';} echo $sql; mysql_close($db); ?> でINSERTしようとするのですが、INSERT Error!と表示されてしまいます。 Adminで見るとデータベースとテーブルは出来ているのですが、どうしてもINSERTできないのです。 もう何時間も悪戦苦闘しております。 どなたかご指導よろしくお願いいたします。

  • pg_dumpの文字化け

    PostgreSQLのpg_dumpを用いたバックアップで困っています。 OSはVineLinux 2.2.17-0vl10です。 あるサーバ(PostgreSQL7.0.2)のデータベースtest_db(EUC_JP)に対して、 pg_dump -D -v -i -f test.dump test.db でダンプファイルを作成しました。 COPYでは不確実な場合があるということでINSERT文で出力しました。 (データの日本語の部分が数字に変換されています) それを別のサーバ(PostgreSQL8.2.5)のデータベースtest2_db(EUC_JP)にリストアしました。 psql test2_db < test.dump すると、"(株)"という文字を含む文字列が化けてしまっていました。 同じレコードの他のカラムは大丈夫です。 このような場合の対策がありましたら教えていただきたいと思います。 宜しくお願いします。

  • 別のSQLServerのバックアップを復元で

    2台のPCでSQL Serverのデータベースを別のコンピュータのSQL Serverで 復元しています。 別のWindows Server上のSQLServer2012から別のWindows Server上の SQLServer2012へバックアップファイル(yyyymmdd.bak)でリストアを しようとしております。 作業内容としては、データベース→DB選択→タスク→復元→データベースとし、 デバイスからバックアップファイルを指定しています。 データベースの復元は問題なく行え、DBへのアクセス、参照なども行えるのですが、 復元時に使用したユーザとは別のユーザのデータベースロールのアクセス権が消え てしまうのです。 SQLServerへの接続はでき、エクスプローラーには、データベースの表示はされる のですが、表示されたDBを選択をするとアクセスエラーとなります。 Windows認証で接続しているユーザです。 ユーザは同じですがドメインが異なる。 何故、消えてしまうのか。 消えないようにするにはどうしたらよいのか。 教えて下さい。 また、このような事象の説明があるサイトなどがありましたら教えて下さい。 つたない文面でわかりづらいとは思いますが、宜しくお願い致します。

  • phpでのPostgresqlの配列型カラムへのinsert文の書き方

    postgresql 7.0.2,スクリプト言語php4.12で請求書作成のデータベースを作っています。 データベースのカラムが配列型のものが複数あり、フォームから受け取った配列の値を インサートする方法がわからなくて悩んでいます。 for($i=0;$i< count(@$_POST["sum"]);$i++ ) { $summary[] = $_POST["summary"][$i]; $num[] = $_POST["num"][$i]; $tanka[] = $_POST["tanka"][$i]; sql = "insert into seikyu (summary,num,tanka) values('{$summary}','{$num}','{$tanka}')"; だと Warning: PostgreSQL query failed: ERROR: array_in: Need to specify dimension とエラーになります。 どういうSQL文を書けばよいのでしょうか?

    • 締切済み
    • PHP