On Friday 14 July 2006 15:23, Joshua D. Drake wrote: > Tom Lane wrote: > > "Joshua D. Drake" <[EMAIL PROTECTED]> writes: > >> Please let me know if there is anything else you would like me to do or > >> add. > > > > A round of copy-editing seems indicated, at least. > > Oh, no doubt. I tried to fix as much as I find, including a bunch of > stuff already there. However, I do not claim, in any way to be an editor. >
The following patches provide some editorializing for Joshua's patches. -- Robert Treat Build A Brighter LAMP :: Linux Apache {middleware} PostgreSQL
Index: doc/src/sgml/external-projects.sgml =================================================================== RCS file: /projects/cvsroot/pgsql/doc/src/sgml/external-projects.sgml,v retrieving revision 1.10 diff -c -r1.10 external-projects.sgml *** doc/src/sgml/external-projects.sgml 10 Mar 2006 19:10:47 -0000 1.10 --- doc/src/sgml/external-projects.sgml 15 Jul 2006 02:22:02 -0000 *************** *** 1,29 **** <!-- $PostgreSQL: pgsql/doc/src/sgml/external-projects.sgml,v 1.10 2006/03/10 19:10:47 momjian Exp $ --> <appendix id="external-projects"> ! <title>External Projects</title> <para> <productname>PostgreSQL</productname> is a complex software project, ! and managing it is difficult. We have found that many enhancements to <productname>PostgreSQL</productname> can be more ! efficiently developed separately from the core project. Separate ! projects can ! have their own developer teams, email lists, bug tracking, ! and release schedules. While their independence makes ! development easier, it makes users' jobs harder. They have to hunt ! around looking for database enhancements to meet their needs. ! This section describes some of the more popular externally ! developed enhancements and guides you on how to find them. </para> <para> ! Many <productname>PostgreSQL</productname>-related projects are ! hosted at either ! <ulink url="http://gborg.postgresql.org"><productname>GBorg</></ulink> ! or <ulink url="http://pgfoundry.org"><productname>pgFoundry</></ulink>. ! There are other <productname>PostgreSQL</productname>-related projects that are hosted ! elsewhere, but you will have to do an Internet search to find them. </para> <sect1 id="external-interfaces"> --- 1,34 ---- <!-- $PostgreSQL: pgsql/doc/src/sgml/external-projects.sgml,v 1.10 2006/03/10 19:10:47 momjian Exp $ --> <appendix id="external-projects"> ! <title>PgFoundry and External Projects</title> <para> <productname>PostgreSQL</productname> is a complex software project, ! and managing the project is difficult. We have found that many enhancements to <productname>PostgreSQL</productname> can be more ! efficiently developed separately from the core project. ! </para> ! ! <para> ! To help our community with the development of their external projects, ! we have created the <ulink url="http://www.pgfoundry.org/">PgFoundry</ulink>. ! <ulink url="http://www.pgfoundry.org/">PgFoundry</ulink> is built using the ! GForge software project and is similar to SourceForge in its feature set. If ! you have a PostgreSQL related Open Source project that you would like to ! develop and need project management resources such as mailing lists, forums, ! bug tracking, and CVS, please feel free to create a new project. </para> <para> ! Secondly, many <productname>PostgreSQL</productname>-related projects are ! still hosted at <ulink url="http://gborg.postgresql.org"><productname>GBorg</></ulink>. ! GBorg is the original external community developer site, and while it is ! currently closed to new projects in favor of PgFoundry, it still contains ! many active and relevant projects. There are other popular <productname>PostgreSQL</productname> ! related projects that are hosted independently as well at other community ! sites such as <ulink url="http://www.sf.net">SourceForge</ulink>. You should ! google if you don't find the project you are looking for. </para> <sect1 id="external-interfaces"> *************** *** 36,46 **** <para> <productname>PostgreSQL</productname> includes very few interfaces with the base distribution. <application>libpq</> is packaged because ! it is the primary <application>C</> interface and many other ! interfaces are built on top of it. <application>ecpg</> is packaged ! because it is tied to the server-side grammar so is very dependent ! on the database version. All the other interfaces are independent ! projects and must be installed separately. </para> <para> --- 41,50 ---- <para> <productname>PostgreSQL</productname> includes very few interfaces with the base distribution. <application>libpq</> is packaged because ! it is the primary dependecy of most interfaces available to PostgreSQL. ! We also package <application>ecpg</> because it is tied to the ! server-side grammar. All other interfaces, such as PHP, Perl, Python, ! and Ruby, are external projects. </para> <para> *************** *** 52,115 **** <listitem> <para> This is the most common interface for <application>Windows</> ! applications. ! </para> ! </listitem> ! </varlistentry> ! ! <varlistentry> ! <term>pgjdbc</term> ! <listitem> ! <para> ! A <application>JDBC</> interface. </para> </listitem> </varlistentry> <varlistentry> ! <term>Npgsql</term> <listitem> <para> ! <application>.Net</> interface for more recent ! <application>Windows</> applications. </para> </listitem> </varlistentry> <varlistentry> ! <term>libpqxx</term> <listitem> <para> ! A newer <application>C++</> interface. </para> </listitem> </varlistentry> <varlistentry> ! <term>libpq++</term> <listitem> <para> ! An older <application>C++</> interface. </para> </listitem> </varlistentry> <varlistentry> ! <term>pgperl</term> <listitem> <para> ! A <application>Perl</> interface with an <acronym>API</> similar ! to <application>libpq</>. </para> </listitem> </varlistentry> <varlistentry> ! <term>DBD-Pg</term> <listitem> <para> ! A <application>Perl</> interface that uses the ! <acronym>DBD</>-standard <application>API</>. </para> </listitem> </varlistentry> --- 56,112 ---- <listitem> <para> This is the most common interface for <application>Windows</> ! applications. <ulink url="http://odbc.postgresql.org/">Website.</ulink> </para> </listitem> </varlistentry> <varlistentry> ! <term>ODBCng</term> <listitem> <para> ! Another ODBC driver for PostgreSQL. ! <ulink url="http://projects.commandprompt.com/public/odbcng/">Website.</ulink> </para> </listitem> </varlistentry> <varlistentry> ! <term>pgjdbc</term> <listitem> <para> ! A <application>JDBC</> interface. ! <ulink url="http://jdbc.postgresql.org/">Website.</ulink> </para> </listitem> </varlistentry> <varlistentry> ! <term>Npgsql</term> <listitem> <para> ! <application>.Net</> interface for more recent <application>mono/C#</> applications. ! <ulink url="http://pgfoundry.org/projects/npgsql/">Website.</ulink> </para> </listitem> </varlistentry> <varlistentry> ! <term>libpqxx</term> <listitem> <para> ! A newer <application>C++</> interface. ! <ulink url="http://thaiopensource.org/development/libpqxx/">Website.</ulink> </para> </listitem> </varlistentry> <varlistentry> ! <term>DBD::Pg</term> <listitem> <para> ! A <application>Perl</> DBI driver for PostgreSQL. ! <ulink url="http://search.cpan.org/dist/DBD-Pg/">Website.</ulink> </para> </listitem> </varlistentry> *************** *** 119,151 **** <listitem> <para> A newer version of the <application>Tcl</> interface. </para> </listitem> </varlistentry> <varlistentry> ! <term>pgtcl</term> ! <listitem> ! <para> ! The original version of the <application>Tcl</> interface. ! </para> ! </listitem> ! </varlistentry> ! ! <varlistentry> ! <term>PyGreSQL</term> <listitem> <para> ! A <application>Python</> interface library. </para> </listitem> </varlistentry> - </variablelist> - - All of these can be found at - <ulink url="http://gborg.postgresql.org"><productname>GBorg</></ulink> - or <ulink url="http://pgfoundry.org"><productname>pgFoundry</></ulink>. </para> </sect1> --- 116,136 ---- <listitem> <para> A newer version of the <application>Tcl</> interface. + <ulink url="http://gborg.postgresql.org/project/pgtclng/projdisplay.php">Website.</ulink> </para> </listitem> </varlistentry> <varlistentry> ! <term>Pyscopg</term> <listitem> <para> ! A <application>Python</> interface library that is DB API 2.0 compliant. ! <ulink url="http://www.initd.org/">Website.</ulink> </para> </listitem> </varlistentry> </variablelist> </para> </sect1> *************** *** 175,182 **** <para> There are several administration tools available for <productname>PostgreSQL</>. The most popular is ! <application>pgAdmin</>, and there are several commercially ! available ones. </para> </sect1> --- 160,167 ---- <para> There are several administration tools available for <productname>PostgreSQL</>. The most popular is ! <application><ulink url="http://www.pgadmin.org/">pgAdmin III</ulink></>, ! and there are several commercially available ones as well. </para> </sect1>
Index: doc/src/sgml/maintenance.sgml =================================================================== RCS file: /projects/cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v retrieving revision 1.56 diff -c -r1.56 maintenance.sgml *** doc/src/sgml/maintenance.sgml 18 Jun 2006 15:38:35 -0000 1.56 --- doc/src/sgml/maintenance.sgml 15 Jul 2006 02:21:25 -0000 *************** *** 7,48 **** <primary>maintenance</primary> </indexterm> <para> ! There are a few routine maintenance chores that must be performed on ! a regular basis to keep a <productname>PostgreSQL</productname> ! server running smoothly. The tasks discussed here are repetitive ! in nature and can easily be automated using standard Unix tools such ! as <application>cron</application> scripts. But it is the database ! administrator's responsibility to set up appropriate scripts, and to ! check that they execute successfully. </para> ! <para> ! One obvious maintenance task is creation of backup copies of the data on a ! regular schedule. Without a recent backup, you have no chance of recovery ! after a catastrophe (disk failure, fire, mistakenly dropping a critical ! table, etc.). The backup and recovery mechanisms available in ! <productname>PostgreSQL</productname> are discussed at length in ! <xref linkend="backup">. </para> <para> ! The other main category of maintenance task is periodic <quote>vacuuming</> ! of the database. This activity is discussed in ! <xref linkend="routine-vacuuming">. </para> <para> ! Something else that might need periodic attention is log file management. This is discussed in <xref linkend="logfile-maintenance">. </para> ! <para> ! <productname>PostgreSQL</productname> is low-maintenance compared ! to some other database management systems. Nonetheless, ! appropriate attention to these tasks will go far towards ensuring a ! pleasant and productive experience with the system. ! </para> <sect1 id="routine-vacuuming"> <title>Routine Vacuuming</title> --- 7,46 ---- <primary>maintenance</primary> </indexterm> + <indexterm zone="maintenance"> + <primary>Routine maintenance</primary> + </indexterm> + <para> ! PostgreSQL, like any database software, requires that certain tasks ! be performed regularly to achieve optimum performance. The tasks ! discussed here are <emphasis>required</emphasis>, but they ! are repetitive in nature and can easily be automated using standard ! Unix tools such as <application>cron</application> scripts. </para> ! <para> ! <productname>PostgreSQL</productname> is low-maintenance compared ! to other database management systems. It is also fairly easy, provided ! you read the documentation. </para> <para> ! There are three tasks that <emphasis>must</emphasis> be performed on ! a periodic basis. The first is backups. If you do not have a current backup ! and your system experiences a catastrophic failure, you will lose your data. ! You can read further about backups procedures in <xref linked="backup">. ! The second is vacuum which is discussed in <xref linkend="routine-vacuuming">. ! The third is to update the planner statistics using the analyze command as ! discussed in <xref linkend="vacuum-for-statistics">. </para> <para> ! Another task that may need periodic attention is log file management. This is discussed in <xref linkend="logfile-maintenance">. </para> ! <sect1 id="routine-vacuuming"> <title>Routine Vacuuming</title> *************** *** 53,63 **** <para> <productname>PostgreSQL</productname>'s <command>VACUUM</> command ! must be run on a regular basis for several reasons: <orderedlist> <listitem> ! <simpara>To recover disk space occupied by updated or deleted rows.</simpara> </listitem> --- 51,61 ---- <para> <productname>PostgreSQL</productname>'s <command>VACUUM</> command ! <emphasis>must</emphasis> be run on a regular basis for several reasons: <orderedlist> <listitem> ! <simpara>To recover or reuse disk space occupied by updated or deleted rows.</simpara> </listitem> *************** *** 82,92 **** </para> <para> ! The standard form of <command>VACUUM</> can run in parallel with ! normal database operations (SELECTs, INSERTs, UPDATEs, DELETEs, but not ! changes to table definitions). ! Beginning in <productname>PostgreSQL</productname> 8.0, there are ! configuration parameters that can be adjusted to further reduce the performance impact of background vacuuming. See <xref linkend="runtime-config-resource-vacuum-cost">. </para> --- 80,91 ---- </para> <para> ! The standard form of <command>VACUUM</> does not intefere with production ! database operations. Items such as SELECTS, INSERTS, UPDATES and DELETES ! will continue to function as normal, though you will not be able to modify the ! definition (Such as ALTER TABLE ADD COLUMN) of a table while it is being vacuumed. ! The release of <productname>PostgreSQL</productname> 8.0, introduced new ! configuration parameters to further reduce the potentially negative performance impact of background vacuuming. See <xref linkend="runtime-config-resource-vacuum-cost">. </para> *************** *** 187,195 **** </para> <para> ! If you have a table whose contents are deleted on a periodic ! basis, consider doing it with <command>TRUNCATE</command> rather ! than using <command>DELETE</command> followed by <command>VACUUM</command>. <command>TRUNCATE</command> removes the entire content of the table immediately, without requiring a subsequent <command>VACUUM</command> or <command>VACUUM --- 186,194 ---- </para> <para> ! If you have a table whose entire contents are deleted on a periodic ! basis, consider doing it with the <command>TRUNCATE</command> rather ! than using the <command>DELETE</command> followed by <command>VACUUM</command>. <command>TRUNCATE</command> removes the entire content of the table immediately, without requiring a subsequent <command>VACUUM</command> or <command>VACUUM
---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend