From dde302dd4b6ec061073c8ab01ab01956a9b40750 Mon Sep 17 00:00:00 2001
From: Bruce Momjian
-原文最終更新日: Sun Oct 13 23:15:09 EDT 2002
+原文最終更新日: Mon Mar 17 11:32:59 EST 2003
現在の維持管理者: Bruce Momjian (pgman@candle.pha.pa.us)
この文書の最新版は
-
-http://www.PostgreSQL.org/docs/faq-english.html
+
+http://www.PostgreSQL.org/docs/faqs/FAQ.html
で見ることができます。
プラットホームに特有の質問については:
-
- http://www.PostgreSQL.org/users-lounge/docs/faq.html
+
+ http://www.PostgreSQL.org/users-lounge/docs/index.html
@@ -32,8 +33,8 @@ http://www.PostgreSQL.org/docs/faq-english.html
[訳注:
日本語版製作についてのメモは最後尾へ移動しました。
- 日本語版のこの文書は 本家 "User's Lounge" の "Collection of FAQs" の
- "Japanese" という見出しのところにあります。また、以下のサイトにも
+ 日本語版のこの文書は 本家 "Docs" の "Frequently Asked Questions" の
+ ところに "Japanese FAQ" という見出であります。また、以下のサイトにも
あります。
http://www.PostgreSQL.jp/subcommittee/jpugdoc/
http://www.rccm.co.jp/~juk/pgsql/
@@ -41,7 +42,7 @@ http://www.PostgreSQL.org/docs/faq-english.html
この和訳についてお気づきの点は(juk@PostgreSQL.jp)までメールでお寄せ下さい。
- 2002年10月16日 桑村 潤
+ 2003年04月10日 桑村 潤
]
@@ -72,8 +73,7 @@ http://www.PostgreSQL.org/docs/faq-english.html
2.1) PostgreSQL の ODBC ドライバーはありますか? クライアント MS Windows プラットホーム上で走せるために、libpq C ライブラリ、psql、その他のインターフェース、および、クライアントアプリケーションをコンパイルすることは可能です。この場合、クライアントを MS Windows 上で走らせて、TCP/IP 経由でサポートされている Unix プラットホーム上で走るサーバと通信します。 MS Windows プラットホーム上で走せるために、libpq C ライブラリ、psql、その他のインターフェイス、および、クライアントアプリケーションをコンパイルすることは可能です。この場合、クライアントを MS Windows 上で走らせて、TCP/IP 経由でサポートされている Unix プラットホーム上で走るサーバと通信します。 Win32 libpq ライブラリと psql を作るために、win32.mak が配布に含まれてます。PostgreSQLは ODBC クライアントとも通信できます。 サーバ 現在、Cygnus Unix/NT 移植ライブラリの Cygwin を使って、PostgreSQL データベースサーバは Windows NT と Win2k 上で稼働しています。配布に含まれるpgsql/doc/FAQ_MSWIN、あるいは、http://www.PostgreSQL.org/docs/faq-mswin.htmlにある MS Windows FAQ をご覧下さい。 現在、Cygnus Unix/NT 移植ライブラリの Cygwin を使って、PostgreSQL データベースサーバは Windows NT と Win2k 上で稼働しています。配布に含まれるpgsql/doc/FAQ_MSWIN、あるいは、http://www.PostgreSQL.org/docs/faqs/faq-mswin.htmlにある MS Windows FAQ をご覧下さい。 MS Win NT/2000/XP ネイティブ版への移植が現在進行中です。 商用サポート会社のリストはhttp://www.PostgreSQL.org/users-lounge/commercial-support.htmlにあります。 商用サポート会社のリストはhttp://www.ca.PostgreSQL.org/users-lounge/commercial-support.htmlにあります。
-PostgreSQL の最新版はバージョン 7.2.3 です。
我々は、4カ月毎にメジャーリリースを行なうことを計画しています。 配付の中に、いくつかのマニュアルとオンライン・マニュアル(マニュアル・ページ)およびいくつかの小さなテスト例題が含まれます。/doc ディレクトリをご覧下さい。また、マニュアルは、
-http://www.PostgreSQL.org/users-lounge/docs/
+HREF="http://www.ca.PostgreSQL.org/users-lounge/docs/">
+http://www.ca.PostgreSQL.org/users-lounge/docs/
でオンラインでも閲覧できます。 PsqlODBC と OpenLink ODBC の二つの ODBC ドライバーが利用可能です。
+ PsqlODBC と OpenLink ODBC の二つの ODBC ドライバーが利用可能です。 PsqlODBC は PostgreSQL の配布に含まれています。それについてのさらに詳細な情報は
-ftp://ftp.PostgreSQL.org/pub/odbc/
-から取得できます。
+ PsqlODBC は次の場所からダウンロードできます。
+
+ http://gborg.postgresql.org/project/psqlodbc/projdisplay.php
+ データベースを裏に持つ Web ページについての素晴らしい紹介が、 Web への拡張のためには、PHP が卓越したインターフェースとなっています。http://www.php.net/にあります。
+ Web への拡張のためには、PHP が卓越したインターフェイスとなっています。http://www.php.net/にあります。
処理が複雑な場合、多くの人は Perl インターフェースと CGI.pm か mod_perl を使います。
+ 処理が複雑な場合、多くの人は Perl インターフェイスと CGI.pm か mod_perl を使います。
- PgAccess と呼ばれる素晴らしいグラフィカル・ユーザ・インターフェースがあり、この配布と共に出荷されます。PgAccess にはレポート・ジェネレータもあります。Web ページはhttp://www.pgaccess.org/です。
-
- ecpg という C 言語のための埋め込み SQL 問い合わせ言語インターフェースもあります。
+ もちろん、PostgreSQL へのグラフィカルインターフェイスがいくつかあります。
+その中にPgAccess http://www.pgaccess.com
+も含まれます。
+PgAdmin II (http://www.pgadmin.org Win32-only)もあります。
+RHDB Admin (http://sources.redhat.com/rhdb/
+)と Rekall (
+ http://www.thekompany.com/products/rekall/, proprietary)もありま
+す。
+PHPPgAdmin (
+ http://phppgadmin.sourceforge.net/ ) はPostgreSQLへのWebベースの
+インターフェイスを提供します。
+
+ PgAccess と呼ばれる素晴らしいグラフィカル・ユーザ・インターフェイスがあり、この配布と共に出荷されます。PgAccess にはレポート・ジェネレータもあります。Web ページはhttp://www.pgaccess.org/です。
+
+ より詳細なリストについては、http://techdocs.postgresql.org/guides/GUITools
+ をご覧ください。
以下のものがあります:
+ 人気のあるほとんどの言語はPostgreSQLへのインターフェイスを持っています。
+あなたが使うプログラミング言語の拡張モジュールのリストを覗いてみてください。
+ 以下のインターフェイスはPostgreSQLの配布に含まれています。
その他の利用可能なインターフェースは
- http://www.PostgreSQL.org/interfaces.html
- にあります。
+ その他の利用可能なインターフェイスは http://www.PostgreSQL.org/interfaces.html
+ および、
+http://gborg.postgresql.org
+のDrivers/Interfacesのセクションにあります。
6.5より前のバージョンのPostgreSQLではバックエンドの最大数は64でしたが、変更するには、include/storage/sinvaladt.hの中のMaxBackendId定数を修正した後に再構築が必要でした。
-
問い合わせ実行モジュールによって生成された一時的なファイルです。例えば、もし ORDER BY 句を満たすためにバックエンドの -S パラメータで許可した値よりも大きなスペースがソートの際に必要だとすると、溢れたデータを保持するために一時的なファイルがいくつか生成されます。
+ 問い合わせ実行モジュールによって生成された一時的なファイルが、このディ
+レクトリに含まれます。例えば、もし ORDER BY 句を満たすためにバックエンドの -S パラメータで許可した値よりも大きなスペースがソートの際に必要だとすると、溢れたデータを保持するために一時的なファイルがいくつかここに生成されます。
一時的なファイルは自動的に消し去られるはずですが、もし、ソートの途中でバックエンドがクラッシュしてしまうとそうはなりません。postmasterの停止とリスタートでこれらのファイルはディレクトリから消しさられます。
@@ -794,7 +791,7 @@ PostgreSQL
[訳注:
SYSLOGD 経由でログを出力するには、まず、configure を --enable-syslog
付きで走らせた後、コンパイルとインストールを行ないます。
- 次に、syslog.conf に local0.* の 出力先を指定し(環境変数で変更可能)、
+ 次に、syslog.conf に local?.* の 出力先を指定し(環境変数で変更可能)、
syslogd に HUP シグナルを送って初期化しておきます。そして、
$PGDATA/pg_options に syslog=2 を加えて、 postmaster を -S
オプション付きにてサーバモードで起動します。(バージョン 7.1 からは
@@ -863,7 +860,7 @@ PostgreSQL
制限は以下のとおりです。
もし、オプティマイザが間違ってシーケンシャルスキャンを選択したことに疑いがなければ、 LIKE あるいは ~ のようなワイルドカード演算
子は特別な環境でしか使えません:
内部名にお目にかかるのは、システム・カタログを調べるときや、エラーメッセージを受け取るときです。
- 上記の型のうち後の4つの型は "varlena" 型です(すなわち、ディスクの最初の4バイトがデータ長で、それの後に実際のデータが続きます)。このように実際の空間は宣言された大きさよりも少し大きくなります。しかし、これらのデータ型はTOASTにより圧縮されたり複数ロウに渡って保存されたりして、ディスク上の空間は思ったより小さくなります。
-
- CHAR(n)はいつも長さが同じ文字列を保存するのに最適で
-す。VARCHAR(n) は可変長の文字列を保存するのに最適ですが、
-保存できる文字列の長さに制限があります。TEXT は長さに制限
-の無い文字列の保存ためのもので、最大1ギガバイトです。
-BYTEAは、部分的にNULL のバイトを含むバイナ
-リデータを保存するためのものです。 上記の型のうち最初の4つの型は "varlena" 型です(すなわち、ディスクの最初の4バイトがデータ長で、それの後に実際のデータが続きます)。このように実際の空間は宣言された大きさよりも少し大きくなります。しかし、これらのデータ型はTOASTにより圧縮されたり複数ロウに渡って保存されたりして、ディスク上の空間は思ったより小さくなります。
+ VARCHAR(n) は可変長の文字列を保存するのに最適ですが、保存できる文字列の長さに制限があります。TEXT は長さに制限の無い文字列の保存ためのもので、最大で 1ギガバイトです。 CHAR(n)は、VARCHAR(n)が与えられた文字だけを保存するのに対し、ブランクを詰め込んでいつも同じ長さで文字列を保存するのに最適です。BYTEAは、部分的にNULL のバイトを含むバイナリデータを保存するためのものです。これらのタイプは同じくらいの性能特性ををもちます。
それはありません。currval() は、すべてのユーザではありませんが、あなたのバックエンドに与えられた現在の値を返します。
- 同時性を改善するために、実行中のトランザクションに、必要でト
-ランザクションが終了するまでロックされないシーケンス値を与えています。
-このためトランザクションが中断されると番号割り当てにギャップを生じます。
+ 同時性を改善するために、実行中のトランザクションに、必要でトランザクションが終了するまでロックされないシーケンス値を与えています。このためトランザクションが中断されると番号割り当てにギャップを生じます。
@@ -1231,7 +1220,7 @@ href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glo
現在は、PostgreSQLのトランザクションのコミット時にラージ・オブジェクト・ハンドルを閉じることにより、lo_openコマンドが完了した直後に強制的にルールを実行します。このため、最初にハンドルに対して何かをしようとすると、invalid large obj descriptor(ラージ・オブジェクトの記述子が不正)となります。それで、もし、トランザクションを使うのを忘れると、(少なくともほとんどの時間)働いていたコードがエラーメッセージを出すのです。
- もし、ODBCのようなクライアントインターフェースをお使いなら、auto-commit offを設定する必要があるかもしれません。
+ もし、ODBCのようなクライアントインターフェイスをお使いなら、auto-commit offを設定する必要があるかもしれません。
@@ -1247,10 +1236,7 @@ href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glo
-現在、外部問い合わせの各ロウについて副問い合わせの結果を順番にスキャンす
-ることにより、副問い合わせを外部問い合わせに結合しています。
-もし、副問い合わせが数行しか返さず、外部問い合わせが沢山の行を返すなら、
-当面は
現行のデータベース以外への問い合わせ方法はありません。というのもPostgreSQLがデータベース仕様のシステムカタログを読み込むためで、そこには、たとえそのふりをするだけにしろ、データベースを越えて問い合わせをするすべがありません。
-/contrib/dblink はデータベース間(cross-database)の問い合わせを関数呼出しにより許します。もちろん、クライアントは同時に接続を別のデータベースへも張らなくてはならず、結果をクライアント側でマージしなくてはなりません。
PostgreSQL(ポストグレス・キュー・エル)についてよくある質問とその解答(FAQ)
@@ -15,14 +16,14 @@ Maintainer of Japanese Translation: Jun Kuwamura (juk@PostgreSQL.jp)
に回答があります。
2.2) PostgreSQL を Web ページと連携させるにはどんなツールがありますか?
-2.3) PostgreSQL にグラフィカル・ユーザインターフェースはありますか?
-レポートジェネレータや埋め込み問い合わせ言語インターフェースはありますか?
+2.3) PostgreSQL にグラフィカル・ユーザインターフェイスはありますか?
2.4) どのような言語で PostgreSQL と通信できすか?
@@ -228,11 +228,11 @@ MODIFICATIONS.
@@ -340,7 +340,7 @@ UNIX
-
[訳注:
@@ -353,7 +353,7 @@ UNIX
1.7) 最新版はどれですか
1.8) どのような文書がありますか?
@@ -512,7 +512,7 @@ href="http://www.PostgreSQL.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bu
PostgreSQLは、Unixプロセスを起動することによりユーザー接続を操作します。複数のバックエンド・プロセスが情報をロックしながらデータ・バッファーを共有します。マルチCPUでは、簡単に複数のバックエンドをそれぞれのCPUで走らせることができます。
2.1) PostgreSQL のための ODBC ドライバーはありますか?
-
[訳注:
- PsqlODBC の 日本語パッチを片岡裕生さん(kataoka@interwiz.koganei.tokyo.jp)が作られました:
- ●http://www.interwiz.koganei.tokyo.jp/software/PsqlODBC/index.html
- 現在、最新版は井上博司さんのサイトにあります。
+ 最新版は井上博司さんのサイトにあります。
●http://w2422.nsk.ne.jp/~inoue/indexj.html
]
@@ -587,7 +587,7 @@ Programmer's Guide
http://www.webreview.comにあります。
[訳注:
@@ -596,19 +596,10 @@ Programmer's Guide
あるいは、廣川 類さんのサイト
http://www.geocities.jp/rui_hirokawa/php/
にかなりまとめられています。
- 前田 充宏さんにより作られたPHP/FIの日本語パッチが様々な人の手を経てPHP3.0.7に適用されました。
- 現在はPHPJ-DEVにて、
- http://php.jpnnet.com/
- 佐藤さんを中心にマルチバイト拡張として作り直され、最新版はPHP-3.0.18に対応しています。
- 塚田 卓也さんは、PHP4 用の日本語関係の拡張モジュール
- ftp://night.fminn.nagano.nagano.jp/php4/
- を用意して下さってます。
- 本家の方で国際化のMLも立ち上がっています。
- PHP-4.2 からマルチバイト拡張文字列として採り入れられました。
]
-
[訳注:
@@ -623,48 +614,55 @@ Programmer's Guide
2.3) PostgreSQL にグラフィカル・ユーザインターフェースはありますか?
-レポートジェネレータや埋め込み問い合わせ言語インターフェースはありますか?
+
2.3) PostgreSQL にグラフィカル・ユーザインターフェイスはありますか?
-
-2.4) どのような言語で PostgreSQL と通信できすか?
-
-
[訳注:
- rubyの作者であるまつもと ゆきひろ(matz@ZetaBITS.COM)さんと、まつもと えいじ(ematsu@pfu.co.jp)さんが
- ruby の PostgreSQL インターフェースを作りました。現在の維持管理は斉藤 登さんがしています。
- http://www.postgresql.jp/interfaces/ruby/
- PgBash は 境田 雅明 さんが作った bash の PostgreSQL インターフェースです。
- http://www.psn.co.jp/PostgreSQL/pgbash/
- Bashコマンドラインでpostgres に問い合わせできます。
- Perl のモジュールは古くからある Pg と DBI ドライバの DBD::Pg とがあり、
- いずれも Edmund Mergl 氏によるもので CPAN サイトにあります。
永安悟史さんは Palm 版の libpq を開発されました。
http://www.snaga.org/libpq/
]
@@ -780,13 +778,12 @@ PostgreSQL Administrator's Gide
PostgreSQLに許されるバックエンドのプロセス数が制限されているのは、
システムのリソースを使い果してしまうことを避けるためです。
-3.9) pgsql_tmp ディレクトリの中には何がありますか?
-
-データベースの最大サイズ? 制限無し (1 TB のデータベースも存在します)
+データベースの最大サイズ? 制限無し (4 TB のデータベースも存在します)
テーブルの最大サイズ? 16TB
ロウの最大サイズ? 1.6TB
フィールドの最大サイズ? 1GB
@@ -955,13 +952,15 @@ ORDER BY
LIMIT 1;
+ SET enable_seqscan TO 'off'を使ってインデクススキャンでまちがいなく速くなっているかをテストをしてみてください。
-
Type Internal Name Notes
--------------------------------------------------
-"char" char 1 character
CHAR(n) bpchar 指定された固定長となるように空白が詰められる
+"char" char 1文字
VARCHAR(n) varchar 最大長のサイズを指定する、詰め物無し
TEXT text 長さに上限の無いテキスト
BYTEA bytea 可変長のバイト配列(null-byte safe)
@@ -1077,15 +1076,9 @@ BYTEA bytea
4.15.1) 通番(serial)/自動増分フィールドはどのようにつくりますか?
@@ -1142,14 +1135,10 @@ BYTEA bytea
4.15.4) トランザクションが中断したときにもうい
-ちどシーケンス番号が使われないのはなぜですか?シーケンス/SERIALカラムに
-空きがあるのはなぜですか?
+
4.15.4) トランザクションが中断したときにもういちどシーケンス番号が使われないのはなぜですか?シーケンス/SERIALカラムに空きがあるのはなぜですか?
- 4.22) なぜ、INを使う副問い合わせがとても遅いのですか?
INをEXISTSで置き換えることです:
+現在、外部問い合わせの各ロウについて副問い合わせの結果を順番にスキャンすることにより、副問い合わせを外部問い合わせに結合しています。もし、副問い合わせが数行しか返さず、外部問い合わせが沢山の行を返すなら、当面はINをEXISTSで置き換えることです:
SELECT *
FROM tab
@@ -1264,7 +1250,7 @@ href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glo
とします。
これが手っ取り早いですが、subcolは索引付きカラムであるべきです。
-この制限は将来のリリースで直したいと思っています。
+ここで示した問題は7.4で修正されます。
4.23) 外部結合(outer join)はどのように実現しますか?
@@ -1303,7 +1289,7 @@ PostgreSQL
@@ -1334,28 +1320,26 @@ http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php にて作業が進められています。
-
[訳注
JPUG 分散トランザクション開発分科会では、永安悟史さんを中心に2相
コミットの実装を行なっています。
- http://www.postgresql.jp/subcommittee/dt/index.html
- http://www.snaga.org/jpug-dt/
+ http://www.postgresql.jp/subcommittee/dt/index.html
+ http://www.snaga.org/jpug-dt/
三谷篤さんによる双方向リプリケーションPGReplicate
- http://www.csra.co.jp/~mitani/jpug/pgreplicate/
+ http://www.csra.co.jp/~mitani/jpug/pgreplicate/
]
-
原理的には可能ですが、これには究極の妙技を要しますので、著者のまわりでは未だ誰もやったことがありません。 +
バージョン7.3以降のPostgreSQLでは、テーブルを返す関数を C, PL/PgSQL、そして SQL にて完全にサポートします。詳しくはプログラマガイドの情報を見てください。Cで定義された表を返す関数の例題がcontrib/tablefuncの中にあります。 +