Update of Japanese FAQ.

Jun Kuwamura
This commit is contained in:
Bruce Momjian 2005-01-13 03:08:14 +00:00
parent cbd8913245
commit c2eef62c66
2 changed files with 158 additions and 129 deletions

View File

@ -1,14 +1,19 @@
PostgreSQL(ポストグレス・キュー・エル)についてよくある質問とその解答(FAQ)
原文最終更新日: Sat Nov 20 17:28:23 EST 2004
原文最終更新日: Sun Jan 9 14:44:04 EST 2005
現在の維持管理者: Bruce Momjian (pgman@candle.pha.pa.us)
Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)
この文書の最新版は http://www.PostgreSQL.org/docs/faqs/FAQ.html で見ることがで
きます。
この文書の最新版は "http://www.postgresql.org/files/documentation/faqs/
FAQ.html"> http://www.postgresql.org/files/documentation/faqs/FAQ.html
で見ることができます。
プラットホームに特有の質問については: "http://www.postgresql.org/docs/faq/">
http://www.postgresql.org/docs/faq/
プラットホームに特有の質問については: http://www.PostgreSQL.org/docs/index.html
に回答があります。
(以下、訳者による注釈を [訳注: と ] とで囲んで記します。)
@ -24,7 +29,7 @@ Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)
この和訳についてお気づきの点は(juk at PostgreSQL.jp)までメールでお寄せ下さい。
2004年11月24日 桑村 潤
2005年01月12日 桑村 潤
]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
@ -98,8 +103,7 @@ Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)
4.14) 色々な文字型のそれぞれの違いは何ですか?
4.15.1) 通番(serial)/自動増分フィールドはどのようにつくりますか?
4.15.2) SERIALデータ型に挿入される値は、どうすれば得られますか
4.15.3) 他のユーザとの競合状態を避けるためには、currval() と nextval() は使わな
いほうがよいのでしょうか?
4.15.3) currval() は他のユーザとの競合状態に陥ることはないですか?
4.15.4) トランザクションが中断したときにもういちどシーケンス番号が使われないの
はなぜですかシーケンスSERIALカラムに空きがあるのはなぜですか
4.16) OID とは何ですか? TID とは何ですか?
@ -134,9 +138,7 @@ Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)
1.1) PostgreSQL とは何ですか?何と読みますか?
Post-Gres-Q-L(ポスト - グレス - キュー - エル) と発音します。この発音を聞きたい
人のために、オーディオファイルを http://www.postgresql.org/postgresql.mp3 に用
意してあります。
PostgreSQLはPost-Gres-Q-L(ポスト - グレス - キュー - エル) と発音します。
PostgreSQL は次世代 DBMS 研究用のプロトタイプであった POSTGRES データベース管理
システムの改良版です(このため、今でもときどき "Postgres" と呼ばれることがあり
@ -148,8 +150,9 @@ PostgreSQL
ームですべて行なわれています。現在の座長は Marc G. Fournier (
scrappy@PostgreSQL.org )です。(下記の1.6節に参加の仕方があります。)現在、このチ
ームが PostgreSQL 開発のすべての面倒をみています。このチームはコミュニティプロ
ジェクトであり、いかなる企業によっても制御を受けません。参加したければ、http://
www.PostgreSQL.org/docs/faqs/FAQ_DEV.html にある開発者向けのFAQを見てください。
ジェクトであり、いかなる企業によっても制御を受けません。参加したければ、 http:/
/www.postgresql.org/files/documentation/faqs/FAQ_DEV.html にある開発者向けのFAQ
を見てください。
Postgres95-1.01 の中心的な開発者は Andrew Yu と Jolly Chen でしたが、その他大勢
の人々がこのコードの移植、テスト、デバグ、および、改良に参加しました。
@ -193,7 +196,7 @@ SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
POSTGRESQL データベース管理システム
部分的著作権 (c) 1996-2005, PostgreSQL国際開発チーム
部分的著作権 (c) 1996-2004, PostgreSQL国際開発チーム
部分的著作権 (c) 1994-6 カリフォルニア大学本校
@ -233,14 +236,17 @@ SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
バージョン8.0になり、PostgreSQL は、Win2000, WinXP, Win2003などの Microsoft
Windows NTベースのオペレーティングシステムでネイティブに走るようになりました。
パッケージになったインストーラが、http://pgfoundry.org/projects/pginstallerから
入手できます。
入手できます。 Windows (Win95, Win98, WinMe)など、MSDOSベースのバージョンでは、
Cygwin を使ってPostgreSQLを走らせることができます。
[訳注
pgInstaller の入手はFTPミラーサイトの win32 ディレクトリからも可能です。
http://www.postgresql.org/mirrors-ftp.html
]
次のサイトに Novell Netware 6 への移植もあります。 http://forge.novell.com
次のサイトに Novell Netware 6 への移植もあります。 http://forge.novell.com また
、OS/2 (eComStation) バージョンは、 http://hobbes.nmsu.edu/cgi-bin/h-search?sh=
1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2Fにあります。
1.5) PostgreSQL はどこから入手できますか?
@ -305,9 +311,11 @@ pgsql-general-request@PostgreSQL.org
http://www.PostgreSQL.org
Freenode および EFNetに #PostgreSQL という IRC チャンネルもあります。 UNIX コマ
ンドで irc -c '#PostgreSQL' "$USER" irc.phoenix.net. あるいは、 irc -c '#
PostgreSQL' "$USER" irc.freenode.net. を使って参加できます。
メジャーなIRC チャンネルは、Freenode (irc.freenode.net)の #PostgreSQL というチ
ャンネルです。 UNIX コマンドで、 irc -c '#PostgreSQL' "$USER" irc.freenode.net.
を使って参加できます。同じネットワークに、スペイン語のチャンネル(#
postgresql-es)もあり、フランス語のチャンネル(#postgresqlfr)もあります。 EFNetに
もPostgreSQLチャンネルがあります。
[訳注:
1999年7月23日、日本ポストグレスユーザー会、略称JPUGが設立されました。
@ -325,7 +333,7 @@ PostgreSQL' "$USER" irc.freenode.net.
1.7) 最新版はどれですか
PostgreSQL の最新版はバージョン 7.4.5 です。
PostgreSQL の最新版はバージョン 7.4.6 です。
我々は、68カ月毎にメジャーリリースを行なうことを計画しています。
@ -357,8 +365,9 @@ http://techdocs.PostgreSQL.org/techdocs/bookreviews.php
[訳注: 和訳文書は、日本ポストグレスユーザー会のhttp://www.postgresql.jp/
document/ をごらん下さい。 ]
psql も、型、演算子、関数、集約、その他の情報をお見せする、いくつかの素晴らしい
\d コマンドを持ちます。
コマンドラインのクライアントプログラムpsql も、型、演算子、関数、集約、その他の
情報をお見せする、いくつかの素晴らしい \d コマンドを持ちます。 - \? を使うと利
用可能なコマンドが表示されます。
我々の Web サイトには、もっと沢山の文書があります。
@ -395,7 +404,7 @@ McGraw-Hill
があります。
近藤直文氏の「初心者向のDB設計入門・SQL入門参考書紹介」のコーナー
http://www.shonan.ne.jp/~nkon/ipsql/books_SQL.html
があります。
があります(やや古い2000年版)
堀田倫英氏の「PostgreSQL日本語マニュアル」
http://www.net-newbie.com/
ではオンラインマニュアルの検索ができます。
@ -423,8 +432,8 @@ pgsql-patches
1.13) バグレポートはどのように発信しますか?
http://www.PostgreSQL.org/bugs/bugs.phpPostgreSQL BugTool (バグツール)のページ
を訪れてみて下さい。バグレポートを提出する仕方についての手引と指針があります。
http://www.postgresql.org/support/submitbug のPostgreSQL バグフォームを訪れて下
さい。バグレポートを提出する仕方についての手引と指針があります。
それと同時に ftp サイト ftp://ftp.PostgreSQL.org/pub/で、もっと新しいバージョン
の PostgreSQL あるいはパッチをさがしてみて下さい。
@ -447,11 +456,7 @@ http://www.PostgreSQL.org/bugs/bugs.phpPostgreSQL BugTool (
い合わせ、また、 read/write 問い合わせのロードがより高速です。MySQLは少ない
ユーザでの単純な SELECT 問い合わせでは高速です。もちろん、MySQLには上記の
Featuresの節に示すような機能はほとんどありません。我々は、PostgreSQLに柔軟
性と機能性を組み込みながらも、絶えず性能の改善を続けています。PostgreSQL と
MySQL とを比較している面白い Web ページがhttp://openacs.org/philosophy/
why-not-mysql.htmlにあります。また、MySQLは、製品をオープンソースを通じて配
布して、クローズソースソフトウェアとしての商用ライセンスを要求する企業でも
あり、PostgreSQLのようなオープンソース開発コミュニティではありません。
性と機能性を組み込みながらも、絶えず性能の改善を続けています。
信頼性(Reliability)
我々は、DBMSの信頼性が高くなくてはその価値が無いことを理解してます。十分テ
ストして、安定したコードをバグを最小にしてからリリースするように努めてます
@ -491,10 +496,10 @@ PostgreSQL
ための資金ではありません。もし、小切手(check)の方が都合よければ連絡先の住所へお
送り下さい。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
さらに、PostgreSQLを使った成功事例をお持ちであれば、ぜひ、われわれの事例紹介リ
スト pgsql-advocacy@postgresql.org へお送りください。
さらに、PostgreSQLを使った成功事例をお持ちであれば、ぜひ、われわれの事例紹介サ
イト http://advocacy.postgresql.orgへお送りください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ユーザー・クライアントの質問
@ -505,11 +510,6 @@ PsqlODBC
PsqlODBC は次の場所からダウンロードできます。 http://gborg.postgresql.org/
project/psqlodbc/projdisplay.php
[訳注:
最新版は井上博司さんのサイトにあります。
●http://w2422.nsk.ne.jp/~inoue/indexj.html
]
OpenLink ODBC は http://www.openlinksw.com/から入手できます。標準的な ODBC クラ
イアント・ソフトウェアで使えますので、支援しているすべてのプラットホーム(Win,
Mac, Unix, VMS)から PostgreSQL の ODBC が利用できます。
@ -553,10 +553,11 @@ www.php.net/
もちろん、PostgreSQL へのグラフィカルインターフェイスがいくつかあります。その中
にPgAccess http://www.pgaccess.org も含まれます。 PgAdmin III (http://
www.pgadmin.org)もあります。 RHDB Admin (http://sources.redhat.com/rhdb/ )と
Rekall ( http://www.thekompany.com/products/rekall/, proprietary)もあります。
PhpPgAdmin ( http://phppgadmin.sourceforge.net/ ) はPostgreSQLへのWebベースのイ
ンターフェイスを提供します。
www.pgadmin.org)もあります。 RHDB Admin (http://sources.redhat.com/rhdb/ )、
TORA (http://www.globecom.net/tora/ (部分的に商用)) および、 Rekall ( http://
www.thekompany.com/products/rekall/, proprietary)もあります。 PhpPgAdmin (
http://phppgadmin.sourceforge.net/ ) はPostgreSQLへのWebベースのインターフェイ
スを提供します。
より詳細なリストについては、http://techdocs.postgresql.org/guides/GUITools をご
覧ください。
@ -605,8 +606,9 @@ Interfaces
して使える共有メモリーの大きさを大きく設定する必要があります。具体的な大きさは
、使っているアーキテクチャとpostmaster を走らせるときに設定するバッファの数とバ
ックエンドプロセスに依存します。ほとんどのシステムでは、既定値のバッファサイズ
のままで、少なくとも約1MBが必要です。 PostgreSQL Administrator's Guide に共有メ
モリーとセマフォについての情報の詳細がありますのでご覧ください。
のままで、少なくとも約1MBが必要です。 PostgreSQL Administrator's Guide/Server
Run-time Environment/Managing Kernel Resources に共有メモリーとセマフォについて
の情報の詳細がありますのでご覧ください。
3.4) postmasterを走らせようとすると、IpcSemaphoreCreate エラーが出ます。なぜで
すか?
@ -647,19 +649,20 @@ PostgreSQL
ンのオーバーヘッドが減ります。また、大きなデータの変更を行なう際はインデックス
を一度外して、作り直すことを考えてみて下さい。
チューニングのオプションがいくつかあります。postmaster を -o -F オプションで起
動することによって、fsync() を無効にすることができます。これによって、各トラン
ザクション毎に fsync() でディスクを更新するのを止めさせます。
Administration Guide/Server Run-time Environment/Run-time Configurationには、チ
ューニングのオプションがいくつかあります。fsyncオプションでfsync() を無効にする
ことができます。これによって、各トランザクション毎に fsync() でディスクを更新す
るのを止めさせます。
postmaster -B オプションを使ってバックエンド・プロセスにより使われる共有メモリ
shared_buffersオプションを使ってバックエンド・プロセスにより使われる共有メモリ
ー・バッファを大きくすることもできます。もし、このパラメータを高くしすぎると、
カーネルの共有メモリー空間の制限値を越えてしまうために postmaster が走らなくな
るでしょう。既定値では、それぞれのバッファの大きさは 8K で、バッファ数は 64 で
す。
るでしょう。既定値では、それぞれのバッファの大きさは 8K で、バッファ数は 1000
す。
バックエンドを -S オプションを使って、それぞれのバックエンド・プロセスが一時的
な並べ替えによって使うメモリーの最大サイズを増やすこともできます。その -S の値
はキロバイト単位で、既定値は 512 (すなわち、512K)です。
sort_mem (PostgreSQL 8.0からは: work_mem)オプションを使って、それぞれのバックエ
ンド・プロセスが一時的な並べ替えによって使うメモリーの最大サイズを増やすことも
できます。既定値は 1024 (すなわち、1MB)です。
また、CLUSTER コマンドを使って、テーブルのデータをインデックスに合わせるために
グループ化することもできます。詳しくは、オンラインマニュアルで CLUSTER を見て下
@ -695,16 +698,23 @@ Postmaster
したわけではないので、独立な環境で走っているのではなくロック/バックエンドとの
対話の問題が重複することはありません。
もし、postmasterが走っていれば、あるウィンドウで psqlを開始すると、psql で使わ
れる postgres プロセスのPIDが見つかります。デバッガを使って postgresのPIDにアタ
ッチ(attach)します。デバッガの中からブレーク・ポイントをセットし、psql から問い
合わせを発行します。デバグのためにpostgresを始動する場合は、PGOPTIONS="-W n" を
設定でき、それから、psql を開始します。これにより、n 秒開始を遅らせるはずなので
、デバッガでプロセスにアタッチして、ブレークポイントを設定し、開始から順を追っ
て見てゆくことができます。
もし、postmasterが走っていれば、あるウィンドウでpsqlを開始すると、
PostgreSQL プログラムには、デバグと性能測定にとても役に立つ -sや -Aや -t 等のオ
プションがあります。
SELECT pg_backend_pid()
を使って、psql で使われる postgres プロセスのPIDが見つかります。デバッガを使っ
てpostgresのPIDにアタッチ(attach)します。デバッガの中からブレーク・ポイントをセ
ットし、psql から問い合わせを発行します。デバグのためにpostgresを始動する場合は
、PGOPTIONS="-W n" を設定でき、それから、psql を開始します。これにより、n 秒開
始を遅らせるはずなので、デバッガでプロセスにアタッチして、ブレークポイントを設
定し、開始から順を追って見てゆくことができます。
いくつかの
log_*
サーバ構成変数は、デバッグと性能測定にとても役に立つプロセスの統計の印刷を可能
にします。
何という関数がどのくらい実行時間を食っているかを見るために、プロファイリング(
プロフィール付き)でコンパイルすることも可能です。そのバックエンドのプロフィー
@ -950,7 +960,17 @@ LIKE
・ 検索文字列を文字クラスから始めることはできません。たとえば、[a-e]。
・ ILIKE や ~* のような大文字と小文字を区別しない検索は使えません。そのかわり
、このFAQの4.12節で説明する関数のインデックスが使えます。
・ initdb においては、デフォルトでCロケールが使われなくてはなりません。
・ initdb においては、デフォルトでCロケールが使われなくてはなりません。その理
由は、Cロケール以外では次に大きな文字を知ることができないからです。このよう
な場合、
LIKE
インデクシングにだけ働くような、特別な
text_pattern_ops
インデックスを作成することもできます。
8.0より前のリリースでは、インデックスは、データ型がちょうどインデックスのカラム
の型と一致しなければ、使えないことがしばしばありました。おそらく、int2, int8,
@ -1107,12 +1127,10 @@ currval()
最後に、INSERT文から返るOIDを使って、既定値をみつけることもできますが、しかし、
oidの値は40億に達するともとに戻ってしまい、最も移植性の低いやり方となるでしょう
。PerlのDBIで Edmund Mergl の作った DBD::Pg モジュールを使えば、$sth->execute()
の後に $sth->{pg_oid_status} を経由してその OID 値を使えるようにすることはでき
ます。
。Perl DBI の DBD::Pg モジュールを使えば、$sth->execute() の後に $sth->
{pg_oid_status} を経由してその OID 値を使えるようにすることはできます。
4.15.3) 他のユーザとの競合状態を避けるためには、currval() と nextval() は使わな
いほうがよいのでしょうか?
4.15.3) currval() は他のユーザとの競合状態に陥ることはないですか?
それはありません。currval() は、すべてのユーザではありませんが、あなたのバック
エンドに与えられた現在の値を返します。
@ -1353,12 +1371,13 @@ PL/PgSQL
せん。make clean をしてからもう一度 make を行なわなくてはなりません。もし、GCC
をお使いであれば configure の --enable-depend オプションを使って、コンパイラに
依存関係を自動的に調べさせることもできます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[訳注:
日本語版の製作については以下の通りです。
最終更新日: 2004年11月24
最終更新日: 2005年01月12
翻訳者: 桑村 潤 (Jun Kuwamura <juk at PostgreSQL.jp>)
このFAQの和訳の作成にあたり協力をしてくださった方々(敬称は略させていただきます):

View File

@ -8,7 +8,7 @@
<H1>
PostgreSQL(ポストグレス・キュー・エル)についてよくある質問とその解答(FAQ)</H1>
<P>
原文最終更新日: Sat Nov 20 17:28:23 EST 2004</P>
原文最終更新日: Sun Jan 9 14:44:04 EST 2005</P>
<P>
現在の維持管理者: Bruce Momjian (<A
HREF="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
@ -16,16 +16,14 @@ Maintainer of Japanese Translation: Jun Kuwamura (<A
HREF="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</A>)<BR><P>
<P>
この文書の最新版は
<A HREF="http://www.PostgreSQL.org/docs/faqs/FAQ.html">
http://www.PostgreSQL.org/docs/faqs/FAQ.html</A>
"http://www.postgresql.org/files/documentation/faqs/FAQ.html">
http://www.postgresql.org/files/documentation/faqs/FAQ.html</A></P>
で見ることができます。
<P>
プラットホームに特有の質問については:
<A HREF="http://www.PostgreSQL.org/docs/index.html">
http://www.PostgreSQL.org/docs/index.html</A>
"http://www.postgresql.org/docs/faq/">
http://www.postgresql.org/docs/faq/</A></P>
<BR>に回答があります。
<P>
<P>
<SMALL><PRE>
@ -42,7 +40,7 @@ http://www.PostgreSQL.org/docs/faqs/FAQ.html</A>
この和訳についてお気づきの点は(<A HREF="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</A>)までメールでお寄せ下さい。
2004年11月24日 桑村 潤
2005年01月12日 桑村 潤
]
</PRE></SMALL>
@ -114,7 +112,7 @@ http://www.PostgreSQL.org/docs/faqs/FAQ.html</A>
<A HREF="#4.14">4.14</A>) 色々な文字型のそれぞれの違いは何ですか?<BR>
<A HREF="#4.15.1">4.15.1</A>) 通番(serial)/自動増分フィールドはどのようにつくりますか?<BR>
<A HREF="#4.15.2">4.15.2</A>) <SMALL>SERIAL</SMALL>データ型に挿入される値は、どうすれば得られますか?<BR>
<A HREF="#4.15.3">4.15.3</A>) 他のユーザとの競合状態を避けるためには、<I>currval()</I> <I>nextval()</I> は使わないほうがよいのでしょうか?<BR>
<A HREF="#4.15.3">4.15.3</A>) <I>currval()</I> は他のユーザとの競合状態に陥ることはないですか?<BR>
<A HREF="#4.15.4">4.15.4</A>) トランザクションが中断したときにもういちどシーケンス番号が使われないのはなぜですかシーケンスSERIALカラムに空きがあるのはなぜですか<BR>
<A HREF="#4.15">4.16</A>) <SMALL>OID</SMALL> とは何ですか? <SMALL>TID</SMALL> とは何ですか?<BR>
<A HREF="#4.17">4.17</A>) PostgreSQL で使われるいくつかの用語の意味は何ですか?<BR>
@ -142,12 +140,13 @@ http://www.PostgreSQL.org/docs/faqs/FAQ.html</A>
<H4><A NAME="1.1">1.1</A>) PostgreSQL とは何ですか? 何と読みますか?</H4>
<P><I>Post-Gres-Q-L</I>(ポスト - グレス - キュー - エル) と発音します。
この発音を聞きたい人のために、オーディオファイルを http://www.postgresql.org/postgresql.mp3 に用意してあります。</P>
<P>PostgreSQLは<I>Post-Gres-Q-L</I>(ポスト - グレス - キュー - エル) と発音します。</P>
<P>PostgreSQL は次世代 <SMALL>DBMS</SMALL> 研究用のプロトタイプであった POSTGRES データベース管理システムの改良版です(このため、今でもときどき "Postgres" と呼ばれることがあります。PostgreSQL は POSTGRES の強力なデータ・モデルと豊富なデータ・タイプ(型)を保持しながら、POSTGRES で使われた PostQuel 問い合わせ言語を、拡張した <SMALL>SQL</SMALL> のサブセットに置き換えています。PostgreSQL は無料で完全なソースを利用できます。
<P>PostgreSQL の開発は、PostgreSQL 開発メーリングリストに参加している開発者達のチームですべて行なわれています。現在の座長は Marc G. Fournier (<A HREF="mailto:scrappy@PostgreSQL.org">scrappy@PostgreSQL.org</A> )です。(下記の<a href="#1.6">1.6節</a>に参加の仕方があります。)現在、このチームが PostgreSQL 開発のすべての面倒をみています。このチームはコミュニティプロジェクトであり、いかなる企業によっても制御を受けません。参加したければ、<A href=
"http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html">http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</A> にある開発者向けのFAQを見てください。
"http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html">
http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html</A>
にある開発者向けのFAQを見てください。
</P>
<P>Postgres95-1.01 の中心的な開発者は Andrew Yu と Jolly Chen でしたが、その他大勢の人々がこのコードの移植、テスト、デバグ、および、改良に参加しました。PostgreSQL の派生元コードである Postgres はカリフォルニア大学バークレイ校において、 Michael Stonebraker 教授の指揮のもと、多くの学生、卒業生、本職のプログラマたちの努力により作られました。
@ -191,7 +190,7 @@ MODIFICATIONS.</P>
<SMALL><PRE>
POSTGRESQL データベース管理システム
部分的著作権 (c) 1996-2005, PostgreSQL国際開発チーム
部分的著作権 (c) 1996-2004, PostgreSQL国際開発チーム
部分的著作権 (c) 1994-6 カリフォルニア大学本校
@ -231,6 +230,7 @@ MODIFICATIONS.</P>
<P>バージョン8.0になり、PostgreSQL は、Win2000, WinXP, Win2003などの Microsoft Windows NTベースのオペレーティングシステムでネイティブに走るようになりました。
パッケージになったインストーラが、<a href="http://pgfoundry.org/projects/pginstaller">http://pgfoundry.org/projects/pginstaller</a>から入手できます。
Windows (Win95, Win98, WinMe)など、MSDOSベースのバージョンでは、Cygwin を使ってPostgreSQLを走らせることができます。
</P>
<small><pre>
@ -241,7 +241,10 @@ MODIFICATIONS.</P>
</pre></small>
<p>次のサイトに Novell Netware 6 への移植もあります。
<a href="http://forge.novell.com">http://forge.novell.com</a></p>
<a href="http://forge.novell.com">http://forge.novell.com</a>
また、OS/2 (eComStation) バージョンは、<a href=
"http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F">
http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F</a>にあります。</p>
<BR>
@ -316,14 +319,16 @@ HREF="mailto:pgsql-bugs-request@PostgreSQL.org">pgsql-bugs-request@PostgreSQL.or
<A HREF="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A>
</BLOCKQUOTE>
</P>
<P>Freenode および EFNetに <I>#PostgreSQL</I> という IRC チャンネルもあります。
UNIX コマンドで
<CODE>irc -c '#PostgreSQL' "$USER" irc.phoenix.net.</CODE> あるいは、
<CODE>irc -c '#PostgreSQL' "$USER" irc.freenode.net.</CODE> を使って参加できます。
<P>メジャーなIRC チャンネルは、Freenode (<I>irc.freenode.net</I>)の
<I>#PostgreSQL</I> というチャンネルです。
UNIX コマンドで、
<CODE>irc -c '#PostgreSQL' "$USER" irc.freenode.net.</CODE>
を使って参加できます。
同じネットワークに、スペイン語のチャンネル(<I>#postgresql-es</I>)もあ
り、フランス語のチャンネル(<I>#postgresqlfr</I>)もあります。
EFNetにもPostgreSQLチャンネルがあります。
</P>
<P>
<SMALL><PRE>
[訳注:
@ -344,7 +349,7 @@ UNIX
<H4><A NAME="1.7">1.7</A>) 最新版はどれですか</H4>
<P>
PostgreSQL の最新版はバージョン 7.4.5 です。</P>
PostgreSQL の最新版はバージョン 7.4.6 です。</P>
<P>
我々は、68カ月毎にメジャーリリースを行なうことを計画しています。</P>
@ -390,7 +395,9 @@ PostgreSQL
]
</P>
<P> <I>psql</I> も、型、演算子、関数、集約、その他の情報をお見せする、いくつかの素晴らしい \d コマンドを持ちます。</P>
<P> コマンドラインのクライアントプログラム<I>psql</I> も、型、演算子、関数、集約、その他の情報をお見せする、いくつかの素晴らしい \d コマンドを持ちます。
- \? を使うと利用可能なコマンドが表示されます。
</P>
<P> 我々の Web サイトには、もっと沢山の文書があります。</P>
@ -450,7 +457,7 @@ http://www.PostgreSQL.org/docs/awbook.html</A>
があります。
近藤直文氏の「初心者向のDB設計入門・SQL入門参考書紹介」のコーナー
<A HREF="http://www.shonan.ne.jp/~nkon/ipsql/books_SQL.html">http://www.shonan.ne.jp/~nkon/ipsql/books_SQL.html</A>
があります。
があります(やや古い2000年版)
堀田倫英氏の「PostgreSQL日本語マニュアル」
<A HREF="http://www.net-newbie.com/">http://www.net-newbie.com/</A>
ではオンラインマニュアルの検索ができます。
@ -479,8 +486,10 @@ http://www.PostgreSQL.org/docs/awbook.html</A>
<H4><A NAME="1.13">1.13</A>) バグレポートはどのように発信しますか?
</H4>
<P><A
href="http://www.PostgreSQL.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bugs.php</A>PostgreSQL BugTool (バグツール)のページを訪れてみて下さい。 バグレポートを提出する仕方についての手引と指針があります。</P>
<P><A href=
"http://www.postgresql.org/support/submitbug">
http://www.postgresql.org/support/submitbug</A>
のPostgreSQL バグフォームを訪れて下さい。 バグレポートを提出する仕方についての手引と指針があります。</P>
<P> それと同時に ftp サイト <A HREF="ftp://ftp.PostgreSQL.org/pub/">ftp://ftp.PostgreSQL.org/pub/</A>で、もっと新しいバージョンの PostgreSQL あるいはパッチをさがしてみて下さい。</P>
@ -498,7 +507,7 @@ href="http://www.PostgreSQL.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bu
<DT> <B>性能(Performance)</B></DT>
<DD>
PostgreSQLは他の商用あるいはオープンソースのデータベースと互角の性能も持ちます。ある面ではより早かったり、ほかの面ではより遅かったりします。MySQLなどの特化型データベース・システムにくらべて、PostgreSQL は複数ユーザや複雑な問い合わせ、また、 read/write 問い合わせのロードがより高速です。MySQLは少ないユーザでの単純な SELECT 問い合わせでは高速です。もちろん、MySQLには上記の<I>Features</I>の節に示すような機能はほとんどありません。我々は、PostgreSQLに柔軟性と機能性を組み込みながらも、絶えず性能の改善を続けています。PostgreSQL と MySQL とを比較している面白い Web ページが<A href="http://openacs.org/philosophy/why-not-mysql.html">http://openacs.org/philosophy/why-not-mysql.html</A>にあります。また、MySQLは、製品をオープンソースを通じて配布して、クローズソースソフトウェアとしての商用ライセンスを要求する企業でもあり、PostgreSQLのようなオープンソース開発コミュニティではありません。
PostgreSQLは他の商用あるいはオープンソースのデータベースと互角の性能も持ちます。ある面ではより早かったり、ほかの面ではより遅かったりします。MySQLなどの特化型データベース・システムにくらべて、PostgreSQL は複数ユーザや複雑な問い合わせ、また、 read/write 問い合わせのロードがより高速です。MySQLは少ないユーザでの単純な SELECT 問い合わせでは高速です。もちろん、MySQLには上記の<I>Features</I>の節に示すような機能はほとんどありません。我々は、PostgreSQLに柔軟性と機能性を組み込みながらも、絶えず性能の改善を続けています。
</DD>
<DT> <B>信頼性(Reliability)</B></DT>
@ -530,11 +539,15 @@ href="http://www.PostgreSQL.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bu
<P>また、Webページには PostgreSQL,Inc とありますが、そこの "貢献(contributions)"という項目は、 PostgreSQL プロジェクトを支援するだけのためで、決して特定の会社のための資金ではありません。もし、小切手(check)の方が都合よければ連絡先の住所へお送り下さい。</P>
<HR>
<P>さらに、PostgreSQLを使った成功事例をお持ちであれば、ぜひ、われわれの事例紹介サイト <a href="http://advocacy.postgresql.org">http://advocacy.postgresql.org</a>へお送りください。
<P>さらに、PostgreSQLを使った成功事例をお持ちであれば、ぜひ、われわれの
事例紹介リスト<a href=
"mailto:pgsql-advocacy@postgresql.org">
pgsql-advocacy@postgresql.org</a>
へお送りください。
</P>
<P>
<HR>
<H2 align="center">ユーザー・クライアントの質問</H2>
<P>
@ -549,13 +562,6 @@ href="http://www.PostgreSQL.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bu
http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</A>
</P>
<SMALL><PRE>
[訳注:
最新版は井上博司さんのサイトにあります。
<A HREF="http://w2422.nsk.ne.jp/~inoue/indexj.html">http://w2422.nsk.ne.jp/~inoue/indexj.html</A>
]
</PRE></SMALL>
<P> OpenLink <SMALL>ODBC</SMALL><A HREF="http://www.openlinksw.com/">http://www.openlinksw.com/</A>から入手できます。標準的な <SMALL>ODBC</SMALL> クライアント・ソフトウェアで使えますので、支援しているすべてのプラットホーム(Win, Mac, Unix, VMS)から PostgreSQL の <SMALL>ODBC</SMALL> が利用できます。
<P> たぶん彼らは、商用品質のサポートの必要な人々に売っていると思いますが、
@ -611,7 +617,10 @@ PgAdmin III (<a
href="http://www.pgadmin.org">http://www.pgadmin.org</a>)もあります。
RHDB Admin (<a
href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/
</a>)と Rekall (<a href="http://www.thekompany.com/products/rekall/">
</a>)、TORA (<a
href="http://www.globecom.net/tora/">http://www.globecom.net/tora/
(部分的に商用)</a>)
および、 Rekall (<a href="http://www.thekompany.com/products/rekall/">
http://www.thekompany.com/products/rekall/</a>, proprietary)もありま
す。
PhpPgAdmin (<a href="http://phppgadmin.sourceforge.net/">
@ -671,9 +680,10 @@ PhpPgAdmin (<a href="http://phppgadmin.sourceforge.net/">
</H4>
<P> カーネルが共有メモリーを持つ設定になっていなかったか、でなければ、カーネルに対して使える共有メモリーの大きさを大きく設定する必要があります。具体的な大きさは、使っているアーキテクチャと<I>postmaster</I> を走らせるときに設定するバッファの数とバックエンドプロセスに依存します。ほとんどのシステムでは、既定値のバッファサイズのままで、少なくとも約1MBが必要です。
<A ref=
"http://www.PostgreSQL.org/docs/view.php?version=current&amp;idoc=1&amp;file=kernel-resources.html">PostgreSQL Administrator's Guide
</A>に共有メモリーとセマフォについての情報の詳細がありますのでご覧ください。</P>
<A
href="http://www.postgresql.org/docs/current/static/kernel-resources.html">PostgreSQL
Administrator's Guide/Server Run-time Environment/Managing Kernel Resources</A>
に共有メモリーとセマフォについての情報の詳細がありますのでご覧ください。</P>
<P>
@ -704,11 +714,15 @@ PostgreSQL Administrator's Guide
<P> 確かにインデックスは問い合わせの速度を増します。<SMALL>EXPLAIN ANALYZE</SMALL>コマンドで PostgreSQL がどのようにあなたの問い合わせを翻訳しているかを見ることができ、そして、どのインデックスが使われているかを見ることができます。
<P>もし <SMALL>INSERT</SMALL> を多用している場合は、<SMALL>COPY</SMALL> コマンドを使って大きなバッチ処理でそれを行なうことを検討して下さい。これは、<SMALL>INSERT</SMALL> を別々に行なうよりもっと高速です。次に、<SMALL>BEGIN WORK/COMMIT</SMALL> のトランザクション・ブロックの中に無い文は、それら自身がそれぞれのトランザクションに入っていると見なされます。いくつかの文を一つのトランザクション・ブロックの中で行なうことを考えて下さい。これによりトランザクションのオーバーヘッドが減ります。また、大きなデータの変更を行なう際はインデックスを一度外して、作り直すことを考えてみて下さい。
<P> チューニングのオプションがいくつかあります。<I>postmaster</I><I>-o -F</I> オプションで起動することによって、<I>fsync()</I> を無効にすることができます。これによって、各トランザクション毎に <I>fsync()</I> でディスクを更新するのを止めさせます。
<P> <a href=
"http://www.postgresql.org/docs/current/static/runtime.html">
Administration Guide/Server Run-time Environment/Run-time
Configuration</a>には、
チューニングのオプションがいくつかあります。<i>fsync</I>オプションで<I>fsync()</I> を無効にすることができます。これによって、各トランザクション毎に <I>fsync()</I> でディスクを更新するのを止めさせます。
<P> <I>postmaster</I> <I>-B</I> オプションを使ってバックエンド・プロセスにより使われる共有メモリー・バッファを大きくすることもできます。もし、このパラメータを高くしすぎると、カーネルの共有メモリー空間の制限値を越えてしまうために <I>postmaster</I> が走らなくなるでしょう。既定値では、それぞれのバッファの大きさは 8K で、バッファ数は 64 です。
<P> <I>shared_buffers</I>オプションを使ってバックエンド・プロセスにより使われる共有メモリー・バッファを大きくすることもできます。もし、このパラメータを高くしすぎると、カーネルの共有メモリー空間の制限値を越えてしまうために <I>postmaster</I> が走らなくなるでしょう。既定値では、それぞれのバッファの大きさは 8K で、バッファ数は 1000 です。
<P> バックエンドを <I>-S</I> オプションを使って、それぞれのバックエンド・プロセスが一時的な並べ替えによって使うメモリーの最大サイズを増やすこともできます。 その <I>-S</I> の値はキロバイト単位で、既定値は 512 (すなわち、512K)です。
<P> <I>sort_mem</I> (PostgreSQL 8.0からは: <I>work_mem</I>)オプションを使って、それぞれのバックエンド・プロセスが一時的な並べ替えによって使うメモリーの最大サイズを増やすこともできます。 既定値は 1024 (すなわち、1MB)です。
<P> また、<SMALL>CLUSTER</SMALL> コマンドを使って、テーブルのデータをインデックスに合わせるためにグループ化することもできます。詳しくは、オンラインマニュアルで <I>CLUSTER</I> を見て下さい。
@ -730,17 +744,9 @@ PostgreSQL Administrator's Guide
<P>もし、<i>postmaster</i>が走っていなければ、<I>postgres</I>バックエンドをコマンドラインから走らせることができ、直接<SMALL>SQL</SMALL>文をタイプすることができます。このやりかたは、デバグ目的のとき<B>だけ</B>お奨めします。セミコロンではなく、改行が問い合わせの終りになることに注意してください。もし、デバグシンボルを入れてコンパイルしていれば、デバッガを使って何が起きているかを見ることができます。postmaster からバックエンドを開始したわけではないので、独立な環境で走っているのではなくロック/バックエンドとの対話の問題が重複することはありません。
<P> もし、<i>postmaster</i>が走っていれば、あるウィンドウで
<I>psql</I>を開始すると、<i>psql</i> で使われる <i>postgres</i> プロセス
<SMALL>PID</SMALL>が見つかります。デバッガを使って
<i>postgres</i><SMALL>PID</SMALL>にアタッチ(attach)します。デバッ
ガの中からブレーク・ポイントをセットし、<i>psql</i> から問い合わせを発行
します。デバグのために<i>postgres</i>を始動する場合は、PGOPTIONS="-W n"
を設定でき、それから、<i>psql</i> を開始します。これにより、<i>n</i>
開始を遅らせるはずなので、デバッガでプロセスにアタッチして、ブレークポイ
ントを設定し、開始から順を追って見てゆくことができます。
<P> PostgreSQL プログラムには、デバグと性能測定にとても役に立つ <I>-s</I><I>-A</I><I>-t</I> 等のオプションがあります。
<P> もし、<i>postmaster</i>が走っていれば、あるウィンドウで<I>psql</I>を開始すると、<pre>SELECT pg_backend_pid()</pre>を使って、<i>psql</i> で使われる <i>postgres</i> プロセスの<SMALL>PID</SMALL>が見つかります。
デバッガを使って<i>postgres</i><SMALL>PID</SMALL>にアタッチ(attach)します。デバッガの中からブレーク・ポイントをセットし、<i>psql</i> から問い合わせを発行します。デバグのために<i>postgres</i>を始動する場合は、PGOPTIONS="-W n" を設定でき、それから、<i>psql</i> を開始します。これにより、<i>n</i> 秒開始を遅らせるはずなので、デバッガでプロセスにアタッチして、ブレークポイントを設定し、開始から順を追って見てゆくことができます。
<P> いくつかの<pre>log_*</pre>サーバ構成変数は、デバッグと性能測定にとても役に立つプロセスの統計の印刷を可能にします。
<P> 何という関数がどのくらい実行時間を食っているかを見るために、プロファイリング(プロフィール付き)でコンパイルすることも可能です。そのバックエンドのプロフィール・ファイルは <I>pgsql/data/base/dbname</I> ディレクトリに格納されるでしょう。クライアントのプロフィールはクライアントの現行ディレクトリに置かれるでしょう。Linux でまともなプロファイリングを行うには <I>-DLINUX_PROFILE</I> でコンパイルする必要があります。
@ -972,7 +978,12 @@ ORDER BY
<LI>検索文字列を文字クラスから始めることはできません。たとえば、[a-e]。</LI>
<LI><SMALL>ILIKE</SMALL><I>~*</I> のような大文字と小文字を区別し
ない検索は使えません。そのかわり、このFAQの<a href="#4.12">4.12</a>節で説明する関数のインデックスが使えます。</LI>
<LI>initdb においては、デフォルトで<I>C</I>ロケールが使われなくてはなりません。</i></LI>
<LI><i>initdb</i> においては、デフォルトで<I>C</I>ロケールが使われな
くてはなりません。その理由は、Cロケール以外では次に大きな文字を知ること
ができないからです。このような場合、<PRE>LIKE</PRE>インデクシングにだけ
働くような、特別な<PRE>text_pattern_ops</PRE>インデックスを作成
することもできます。
</LI>
</UL>
<P>
@ -1130,10 +1141,10 @@ BYTEA bytea
new_id = execute("SELECT currval('person_id_seq')");
</PRE>
最後に、<SMALL>INSERT</SMALL>文から返る<A HREF="#4.17"><SMALL>OID</SMALL></A>を使って、既定値をみつけることもできますが、しかし、oidの値は40億に達するともとに戻ってしまい、最も移植性の低いやり方となるでしょう。PerlのDBIで Edmund Mergl の作った DBD::Pg モジュールを使えば、$sth-&gt;execute() の後に $sth-&gt{pg_oid_status} を経由してその OID 値を使えるようにすることはできます。
最後に、<SMALL>INSERT</SMALL>文から返る<A HREF="#4.17"><SMALL>OID</SMALL></A>を使って、既定値をみつけることもできますが、しかし、oidの値は40億に達するともとに戻ってしまい、最も移植性の低いやり方となるでしょう。Perl DBI の DBD::Pg モジュールを使えば、$sth-&gt;execute() の後に $sth-&gt{pg_oid_status} を経由してその OID 値を使えるようにすることはできます。
<P>
<H4><A NAME="4.15.3">4.15.3</A>) 他のユーザとの競合状態を避けるためには、<I>currval()</I> <I>nextval()</I> は使わないほうがよいのでしょうか?
<H4><A NAME="4.15.3">4.15.3</A>) <I>currval()</I> は他のユーザとの競合状態に陥ることはないですか?
</H4>
<P>それはありません。<I>currval()</I> は、すべてのユーザではありませんが、あなたのバックエンドに与えられた現在の値を返します。
@ -1376,14 +1387,13 @@ PL/PgSQL
<P> いくつかの <I>Makefile</I> がインクルード・ファイルに対して適切な依存関係を持っていません。<I>make clean</I> をしてからもう一度 <I>make</I> を行なわなくてはなりません。もし、<SMALL>GCC</SMALL> をお使いであれば <i>configure</i><i>--enable-depend</i> オプションを使って、コンパイラに依存関係を自動的に調べさせることもできます。
<P>
<HR>
<SMALL><PRE>
[訳注:
日本語版の製作については以下の通りです。
最終更新日: 2004年11月24
最終更新日: 2005年01月12
翻訳者: 桑村 潤 (<A HREF="mailto:juk at PostgreSQL.jp">Jun Kuwamura &lt;juk at PostgreSQL.jp&gt;</A>)
このFAQの和訳の作成にあたり協力をしてくださった方々(敬称は略させていただきます):
@ -1417,6 +1427,6 @@ PL/PgSQL
なお、この和訳に関するご意見は(<A HREF="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</A>)までお寄せ下さい。
]
</PRE></SMALL>
</P>
</BODY>
</HTML>