<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Helion-Prime Solutions blog &#187; rdbms</title>
	<atom:link href="http://blogs.helion-prime.com/category/rdbms/feed" rel="self" type="application/rss+xml" />
	<link>http://blogs.helion-prime.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sun, 18 Dec 2011 13:27:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Full Text Search with several tables in PostgreSQL</title>
		<link>http://blogs.helion-prime.com/2010/10/21/full-text-search-with-several-tables-in-postgresql.html</link>
		<comments>http://blogs.helion-prime.com/2010/10/21/full-text-search-with-several-tables-in-postgresql.html#comments</comments>
		<pubDate>Thu, 21 Oct 2010 11:27:40 +0000</pubDate>
		<dc:creator>alex.shapovalov</dc:creator>
				<category><![CDATA[rdbms]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://blogs.helion-prime.com/?p=926</guid>
		<description><![CDATA[Preamble Quite often to overcome performance degradation in Full Text Search with several tables in PostgreSQL people use external full text search engines. And surely you should use them if you have really big amount of date. It seems that currently there are 2 most popular engines: Sphinx: http://sphinxsearch.com/ license: GPL version 2. Commercial licensing [...]]]></description>
			<content:encoded><![CDATA[<h2>Preamble</h2>
<p>Quite often to overcome performance degradation in Full Text Search with several tables in PostgreSQL people use external full text search engines. And surely you should use them if you have really big amount of date. </p>
<p>It seems that currently there are 2 most popular engines:</p>
<p>Sphinx: <a href="http://sphinxsearch.com/">http://sphinxsearch.com/</a><br />
license: GPL version 2. Commercial licensing (eg. for embedded use) is available upon request.<br />
native API implementations: PHP, Perl, Ruby, and Java.<br />
written in: C++</p>
<p>Lucene: <a href="http://lucene.apache.org/">http://lucene.apache.org/</a><br />
license: Apache License 2.0.<br />
native API implementations: Delphi, Perl, C#, C++, Python, Ruby and PHP.<br />
written in: Java</p>
<h2>Basics</h2>
<p>As all active users of PostgreSQL know support of full text search is integrated into the core database system since version 8.3.<br />
If you don&#8217;t have basic understanding of full text search in PostgreSQL, please check:<br />
<a href="http://www.postgresql.org/docs/8.4/interactive/textsearch-intro.html">http://www.postgresql.org/docs/8.4/interactive/textsearch-intro.html</a></p>
<p>Simple full text search query:</p>
<div class="codecolorer-container sql mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> blog_post <br />
<span style="color: #993333; font-weight: bold;">WHERE</span> to_tsvector<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'english'</span><span style="color: #66cc66;">,</span> text <span style="color: #66cc66;">||</span> <span style="color: #ff0000;">' '</span><span style="color: #66cc66;">&#41;</span> @@ plainto_tsquery<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'test'</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>As for any query to achieve acceptable performance using big amount of data we need to add DB index.</p>
<div class="codecolorer-container sql mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">INDEX</span> blog_post_ts_idx <br />
<span style="color: #993333; font-weight: bold;">ON</span> blog_post <span style="color: #993333; font-weight: bold;">USING</span> gin<span style="color: #66cc66;">&#40;</span>to_tsvector<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'english'</span><span style="color: #66cc66;">,</span> text <span style="color: #66cc66;">||</span> <span style="color: #ff0000;">' '</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div></td></tr></tbody></table></div>
<p>The problem arises when we need to perform search with several linked tables. The experiments show that even with necessary indexes on tables during full text search PostgreSQL uses only 1 index and performance degrades.</p>
<h2>Solving of the issue with PostgreSQL</h2>
<p>For example we have 2 tables:<br />
table: Blog_post, field: text,<br />
table: User, field: name</p>
<p>Queries with UNION<br />
We need indexes on both tables:</p>
<div class="codecolorer-container sql mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">INDEX</span> blog_post_ts_idx <span style="color: #993333; font-weight: bold;">ON</span> blog_post <span style="color: #993333; font-weight: bold;">USING</span> gin<span style="color: #66cc66;">&#40;</span>to_tsvector<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'english'</span><span style="color: #66cc66;">,</span> text <span style="color: #66cc66;">||</span> <span style="color: #ff0000;">' '</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">INDEX</span> user_ts_idx <span style="color: #993333; font-weight: bold;">ON</span> <span style="color: #993333; font-weight: bold;">USER</span> <span style="color: #993333; font-weight: bold;">USING</span> gin<span style="color: #66cc66;">&#40;</span>to_tsvector<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'english'</span><span style="color: #66cc66;">,</span> name <span style="color: #66cc66;">||</span> <span style="color: #ff0000;">' '</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div></td></tr></tbody></table></div>
<p>We execute full text search with composite query (UNION )</p>
<div class="codecolorer-container sql mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> id <span style="color: #993333; font-weight: bold;">FROM</span> blog_post <span style="color: #993333; font-weight: bold;">WHERE</span> to_tsvector<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'english'</span><span style="color: #66cc66;">,</span> text <span style="color: #66cc66;">||</span> <span style="color: #ff0000;">' '</span><span style="color: #66cc66;">&#41;</span> @@ plainto_tsquery<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'test'</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #993333; font-weight: bold;">UNION</span><br />
<span style="color: #993333; font-weight: bold;">SELECT</span> blog_post<span style="color: #66cc66;">.</span>id <span style="color: #993333; font-weight: bold;">FROM</span> blog_post<br />
&nbsp; &nbsp;<span style="color: #993333; font-weight: bold;">LEFT</span> <span style="color: #993333; font-weight: bold;">JOIN</span> <span style="color: #993333; font-weight: bold;">USER</span> <span style="color: #993333; font-weight: bold;">ON</span> <span style="color: #993333; font-weight: bold;">USER</span><span style="color: #66cc66;">.</span>id <span style="color: #66cc66;">=</span> blog_post<span style="color: #66cc66;">.</span>user_id<br />
&nbsp; &nbsp;<span style="color: #993333; font-weight: bold;">WHERE</span> to_tsvector<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'english'</span><span style="color: #66cc66;">,</span> name <span style="color: #66cc66;">||</span> <span style="color: #ff0000;">' '</span> <span style="color: #66cc66;">&#41;</span> @@ plainto_tsquery<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'test'</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>In that case PostgreSQL perform 2 separate query that accomplish search by different fields, and that solve issue of  index using.</p>
<h2>Using of materialized View</h2>
<p>Materialized View &#8211;  is a database object that contains the results of a query. And as it&#8217;s a real object we can add DB index to it. Unfortunately at this time Postgresql doesn&#8217;t support that type of DB view.<br />
Therefore we need to create such object by itself. In the capacity of materialized view we will use regular table that consists of 2 fields:</p>
<div class="codecolorer-container sql mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> blog_post_ts_keywords <span style="color: #66cc66;">&#40;</span><br />
&nbsp; &nbsp;blog_post_id <span style="color: #993333; font-weight: bold;">INTEGER</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span><span style="color: #66cc66;">,</span><br />
&nbsp; &nbsp;keywords TSVECTOR<span style="color: #66cc66;">&#41;</span>;</div></td></tr></tbody></table></div>
<p>Then we can add DB index to it:</p>
<div class="codecolorer-container sql mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">INDEX</span> index_blog_post_ts_keywords <span style="color: #993333; font-weight: bold;">ON</span> blog_post_ts_keywords <br />
&nbsp; &nbsp;<span style="color: #993333; font-weight: bold;">USING</span> GIN<span style="color: #66cc66;">&#40;</span>keywords<span style="color: #66cc66;">&#41;</span>;</div></td></tr></tbody></table></div>
<p>Now we can execute regular full text search:</p>
<div class="codecolorer-container sql mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> blog_post_id <span style="color: #993333; font-weight: bold;">FROM</span> blog_post_ts_keywords <span style="color: #993333; font-weight: bold;">WHERE</span> keywords @@ plainto_tsquery<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'test'</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>Main complication here is maintenance of that view in actual state.<br />
We can use DB triggers: <a href="http://www.postgresql.org/docs/8.4/interactive/trigger-definition.html">http://www.postgresql.org/docs/8.4/interactive/trigger-definition.html</a> or simple update queries by some schedule</p>
<div class="codecolorer-container sql mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> blog_post_ts_keywords<br />
<span style="color: #993333; font-weight: bold;">SELECT</span> blog_post<span style="color: #66cc66;">.</span>id <span style="color: #993333; font-weight: bold;">AS</span> blog_post_id<span style="color: #66cc66;">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>to_tsvector<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'english'</span><span style="color: #66cc66;">,</span> blog_post<span style="color: #66cc66;">.</span>text <span style="color: #66cc66;">||</span> &nbsp;usr<span style="color: #66cc66;">.</span>name <span style="color: #66cc66;">||</span> <span style="color: #ff0000;">' '</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> keywords<br />
&nbsp; &nbsp;<span style="color: #993333; font-weight: bold;">FROM</span> blog_post<br />
&nbsp; &nbsp;<span style="color: #993333; font-weight: bold;">LEFT</span> <span style="color: #993333; font-weight: bold;">JOIN</span> <span style="color: #993333; font-weight: bold;">USER</span> <span style="color: #993333; font-weight: bold;">ON</span> <span style="color: #993333; font-weight: bold;">USER</span><span style="color: #66cc66;">.</span>id <span style="color: #66cc66;">=</span> blog_post<span style="color: #66cc66;">.</span>user_id</div></td></tr></tbody></table></div>
<p>Here you can see simple query for materialized view filling. The query for data refreshing looking quite the same considering checking of  changes. And your query for outdated data deleting should take into account deleted or not active records.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.helion-prime.com/2010/10/21/full-text-search-with-several-tables-in-postgresql.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tuning of Postgresql under OpenBSD</title>
		<link>http://blogs.helion-prime.com/2010/02/25/tuning-of-postgresql-under-openbsd.html</link>
		<comments>http://blogs.helion-prime.com/2010/02/25/tuning-of-postgresql-under-openbsd.html#comments</comments>
		<pubDate>Thu, 25 Feb 2010 15:04:00 +0000</pubDate>
		<dc:creator>alex.shapovalov</dc:creator>
				<category><![CDATA[openBSD]]></category>
		<category><![CDATA[rdbms]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[RoR]]></category>

		<guid isPermaLink="false">http://blogs.helion-prime.com/?p=664</guid>
		<description><![CDATA[Preamble I assume that you already made your best with help of your favorite programming language and recommended postgresql performance tips: http://www.postgresql.org/docs/8.4/static/performance-tips.html Postgresql resources No doubt that standard postgresql configuration is far from modern production environments. Therefore you need to spend enough time with following sources. 1. resource consumption documentation: http://www.postgresql.org/docs/8.4/static/runtime-config-resource.html The most important parameters [...]]]></description>
			<content:encoded><![CDATA[<h2>Preamble</h2>
<p>I assume that you already made your best with help of your favorite programming language<br />
and recommended postgresql performance tips: <a href="http://www.postgresql.org/docs/8.4/static/performance-tips.html">http://www.postgresql.org/docs/8.4/static/performance-tips.html</a></p>
<h2>Postgresql resources</h2>
<p>No doubt that standard postgresql configuration is far from modern production environments.<br />
Therefore you need to spend enough time with following sources.</p>
<p><strong>1. resource consumption documentation:</strong><br />
<a href="http://www.postgresql.org/docs/8.4/static/runtime-config-resource.html">http://www.postgresql.org/docs/8.4/static/runtime-config-resource.html</a></p>
<p>The most important parameters are:<br />
work_mem (integer)<br />
shared_buffers (integer)</p>
<p><strong>2. Query Planning documentation:</strong><br />
<a href="http://www.postgresql.org/docs/current/static/runtime-config-query.html">http://www.postgresql.org/docs/current/static/runtime-config-query.html</a></p>
<p>The most important parameters are:<br />
effective_cache_size (integer)<br />
random_page_cost (floating point)</p>
<h2>OpenBSD resources</h2>
<p>The default sizes in the GENERIC kernel are insignificant also and waiting for your tuning as well.<br />
Posgtresql doesn&#8217;t start without enough memory size so always know when you need to increase kern.shminfo.shmmax.</p>
<p><strong>Setting that we can change in /etc/sysctl.conf</strong><br />
the maximum number of System V IPC system-wide semaphore sets (and identifiers) which can exist at any given time:<br />
kern.seminfo.semmni</p>
<p>the maximum total individual System V IPC semaphores which can be assigned by applications:<br />
kern.seminfo.semmns</p>
<p>the amount of shared memory available in the system (bytes):<br />
kern.shminfo.shmmax</p>
<p>the maximum number of shared memory segments:<br />
sysctl kern.shminfo.shmseg</p>
<p>Full list of setting you can see with:<br />
# man sysctl</p>
<p><strong>OpenBSD kernel parameters</strong><br />
So, there are set of parameters that can be tuned only with kernel rebuild. </p>
<p>You should tune them only if system works unstable with default values and you have:<br />
kernel warnings: “uvm_mapent_alloc: out of static map entries”<br />
or panics like:  “panic: malloc: out of space in kmem_map”</p>
<p>NKMEMPAGES<br />
This option defines number of pages in kernel kmem_map structure.</p>
<p>MAX_KMAPENT<br />
It defines number of static entries in kernel kmem_map (kernel virtual memory).</p>
<p>They can be changed in:<br />
/usr/src/sys/arch/conf/GENERIC</p>
<p>As start you need to recheck  &#8216;Building the System from Source&#8217; part of OpenBSD documentation:<br />
<a href="http://openbsd.org/faq/faq5.htm">http://openbsd.org/faq/faq5.htm</a></p>
<p>Usually administrators select these parameters using set of tests on dedicated testing box where<br />
 they emulate load of  production servers.</p>
<h2>Example</h2>
<p>our test server: 1x Intel Quad core CPU, 2GB RAM<br />
software: Ruby on Rails application, postgresql DB, memcached.<br />
load: about 15.000 users/day, peak load: 10 users/sec.</p>
<p>postgresql_dir/data/postgresql.conf</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># RESOURCE USAGE</span><br />
shared_buffers = 738MB<br />
max_prepared_transactions = <span style="color: #000000;">30</span><br />
work_mem = 16MB<br />
max_fsm_pages = <span style="color: #000000;">2000000</span><br />
<br />
<span style="color: #666666; font-style: italic;"># QUERY TUNING</span><br />
effective_cache_size = 512MB<br />
random_page_cost = <span style="color: #000000;">1.7</span></div></td></tr></tbody></table></div>
<p>/etc/sysctl.conf</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">kern.seminfo.semmni = <span style="color: #000000;">256</span><br />
kern.seminfo.semmns = <span style="color: #000000;">2048</span><br />
kern.shminfo.shmmax = <span style="color: #000000;">805306368</span> &nbsp; &nbsp;<span style="color: #666666; font-style: italic;"># Shared memory segment size is 768M</span></div></td></tr></tbody></table></div>
<p>/usr/src/sys/arch/conf/GENERIC</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">## custom settings</span><br />
option MAX_KMAPENT = <span style="color: #000000;">3072</span><br />
option NKMEMPAGES = <span style="color: #000000;">32768</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://blogs.helion-prime.com/2010/02/25/tuning-of-postgresql-under-openbsd.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

