<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de-CH">
	<id>https://giswiki.ch/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dominik</id>
	<title>Geometa Lab OST - Benutzerbeiträge [de-ch]</title>
	<link rel="self" type="application/atom+xml" href="https://giswiki.ch/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dominik"/>
	<link rel="alternate" type="text/html" href="https://giswiki.ch/Spezial:Beitr%C3%A4ge/Dominik"/>
	<updated>2026-04-27T18:44:26Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://giswiki.ch/index.php?title=MediaWiki&amp;diff=31783</id>
		<title>MediaWiki</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=MediaWiki&amp;diff=31783"/>
		<updated>2011-01-17T15:48:13Z</updated>

		<summary type="html">&lt;p&gt;Dominik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das GISpunkt Wiki basiert auf der MediaWiki-Software. &lt;br /&gt;
&lt;br /&gt;
Hilfe zum &#039;WikiText&#039; siehe [[Hilfe:Bearbeitungshilfe|MediaWiki-Bearbeitungshilfe]].&lt;br /&gt;
&lt;br /&gt;
Nachfolgend u.a. Hinweise zur Konfiguration auf dem GISpunkt-HSR-Rechner (gis.hsr.ch). Ganz unten einige allgemeine Weblinks zu MediaWiki. Siehe dazu auch [[Joomla]].&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
&lt;br /&gt;
* Exportieren:&lt;br /&gt;
** Beispiel: http://gis.hsr.ch//wiki/Spezial:Exportieren/HSR&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Installation GISpunkt Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Letzte Aktualisierung ===&lt;br /&gt;
* 2011-01-17: Update auf Version 1.16.1&lt;br /&gt;
** Aufräumen der installierten Extensions&lt;br /&gt;
&lt;br /&gt;
=== Angepasste Hauptseite (Startseite) ===&lt;br /&gt;
&lt;br /&gt;
Mit [[MediaWiki:Sidebar]] (Navigation) angepasst (als WikiSysop). Original siehe &amp;quot;Diskussion:Hauptseite&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Test: Siehe [[Hauptseite]] (= Startseite).&lt;br /&gt;
&lt;br /&gt;
=== LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Erlaubte File Upload (Hochladen) &#039;File Extensions&#039;: pdf, wav, mp3, ogg, zip.&lt;br /&gt;
* Das Verzeichnis $wgUploadDirectory und alle Subelemente müssen im Filesystem für den Webserver-User beschreibbar sein&lt;br /&gt;
&lt;br /&gt;
=== Manuelle Anpassungen ===&lt;br /&gt;
&lt;br /&gt;
* In skins/commons liegen logo_giswiki.jpg und headbg-gispunkt.jpg (softlink von skins/monobook/headbg.jpg), diese müssen bei einem Upate kopiert werden, ev. müsste einmal ein eigenes Skin erstellt werden...&lt;br /&gt;
* Der benutzte Skin (Monobook) wurde angepasst, damit auf Mobiltelefonen das Handheld-CSS erzwungen wird. Dazu ist die Erkennung über den User-Agent-String in MonoBook.php implementiert.&lt;br /&gt;
* Das handheld.css wurde angepasst: #siteSub { display: none; }&lt;br /&gt;
&lt;br /&gt;
=== Installierte Extensions ===&lt;br /&gt;
&lt;br /&gt;
* FlashMP3 (MP3-Playback), siehe [http://www.mediawiki.org/wiki/Extension:FlashMP3 Extension:FlashMP3]&lt;br /&gt;
* VideoFlash (displays videos from e.g. Youtube), siehe [http://www.mediawiki.org/wiki/Extension:VideoFlash Extension:VideoFlash]&lt;br /&gt;
* SlideShare (embed SlideShare presentations), siehe [http://www.mediawiki.org/wiki/Extension:SlideShare Extension:SlideShare]&lt;br /&gt;
* OggHandler (display Ogg audio and video files), siehe [http://www.mediawiki.org/wiki/Extension:OggHandler Extension:OggHandler]&lt;br /&gt;
* LanguageSelector (lässt Auswahl der UI-Sprache zu), siehe [http://www.mediawiki.org/wiki/Extension:LanguageSelector Extension:LanguageSelector]&lt;br /&gt;
* reCAPTCHA (platziert ein Captcha bei Neuregistrierung und Seitenänderung mit neuen Links), siehe [http://www.mediawiki.org/wiki/Extension:ReCAPTCHA Extension:ReCAPTCHA]&lt;br /&gt;
* MediaWikiAuthTool (erlaubt externen Applikationen eine User-Authentisierung via MediaWiki-Datenbank), siehe [[MediaWikiAuthTool]]&lt;br /&gt;
* QRCode (für URL erzeugen)&lt;br /&gt;
* MultiUpload (allows users to upload more than one file at a time), siehe [http://www.mediawiki.org/wiki/Extension:MultiUpload Extension:MultiUpload]&lt;br /&gt;
* MWSearch (fetch search results from Lucene), siehe [http://www.mediawiki.org/wiki/Extension:MWSearch Extension:MWSearch]&lt;br /&gt;
* Lucene-search (Lucene backend for MWSearch), siehe [http://www.mediawiki.org/wiki/Extension:Lucene-search Extension:Lucene-search]&lt;br /&gt;
&lt;br /&gt;
=== Lucene-Search ===&lt;br /&gt;
&lt;br /&gt;
Extension Lucene-search ist installiert in /usr/local/lucene-search-[version] (softlink /usr/local/lucene-search).&lt;br /&gt;
Script zum Starten/Stoppen des Daemons ist /etc/init.d/wikilsearchd&lt;br /&gt;
Cron-Job ist /etc/cron.hourly/wikilucenerebuild&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen für GIS ==&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[WikiGIS]] und die MediaWiki-Projektseite.&lt;br /&gt;
&lt;br /&gt;
Wiki-Karte und Geo-Tagging von Artikel:&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:GeoRSS - WikiMedia extension for GeoRSS. Easy interface for geotagging MediaWiki articles, and publishes a GeoRSS feed of all mapped articles in the Wiki, for mapping and syndication. By Mikel Maron.&lt;br /&gt;
* http://hexten.net/wiki/index.php/Wiki_Widgets - Hexten - Wiki Widgets are extensions for MediaWiki that provide simple ways to embed information from other sources within a wiki page. &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Google_Maps - WikiMedia extension for Google Maps &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:KML_Export - WikiMedia extension for KML Export &lt;br /&gt;
* http://wikimap.sourceforge.net/Main_Page - WikiMap is a dynamic (&#039;web 2.0&#039;) map that allows you to easily add locations to it. These locations show up on the map as markers. When you click a marker a little infowindow pops up. This infowindow can contain text, images, video, you name it. WikiMap is based on Openlayers and WordPress. Author: Robert Buzink.&lt;br /&gt;
&lt;br /&gt;
Google Maps Extensions für MediaWiki:&lt;br /&gt;
* Listen:&lt;br /&gt;
** http://de.wikipedia.org/wiki/Benutzer:Arcy#MediaWiki_anpassen &lt;br /&gt;
** http://en.giswiki.org/wiki/MediaWiki_GIS_Extensions&lt;br /&gt;
** http://en.giswiki.org/wiki/Google_Maps_Extensions/Probleme&lt;br /&gt;
* Tutorials für diverse kleinere Erweiterungen des MediaWikis&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Infofenster-Extension&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Marker_Extension&lt;br /&gt;
*  Google Map Extension, die es erlaubt, Geoinformationsdaten aus RSS Feeds in eine Karte einzubinden [http://meta.wikimedia.org/wiki/User:Mafs/GoogleMapExtension].&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Gis Manske&#039;s Gis-Extension auf WikiMedia]&lt;br /&gt;
** Erweiterung der Datenbank http://en.giswiki.org/wiki/GIS-Extension&lt;br /&gt;
* Eine Erweiterung für das Einbinden einer Google Map in MediaWiki http://en.giswiki.org/wiki/Google_Maps_Extensions&lt;br /&gt;
* Beispielcode für die Erstellung einer Google Map im GISWiki http://en.giswiki.org/wiki/Google_Maps_Extensions/GISWiki&lt;br /&gt;
* Tutorial und Code für das Anzeigen einer georeferenzierte Karte mit eigenen Punktkoordinaten http://en.giswiki.org/wiki/Point-Mapping_Extension&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen allgemein ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:Pdf_Book Pdf_Book] - PDF erzeugen aus Artikel, die in Kategorien oder Bullet Listen organisiert sind.&lt;br /&gt;
* Verbesserte Suche&lt;br /&gt;
* User Management:&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:Newuserlog&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:New_User_Email_Notification&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:ScuttleBookmarks ScuttleBookmarks] - Displays Scuttle bookmarks in a blogroll type view&lt;br /&gt;
* Wiki-Datbase: In sep. Wiki testen?&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=MediaWiki&amp;diff=31782</id>
		<title>MediaWiki</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=MediaWiki&amp;diff=31782"/>
		<updated>2011-01-17T15:19:54Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* KML Export Extension */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das GISpunkt Wiki basiert auf der MediaWiki-Software. &lt;br /&gt;
&lt;br /&gt;
Hilfe zum &#039;WikiText&#039; siehe [[Hilfe:Bearbeitungshilfe|MediaWiki-Bearbeitungshilfe]].&lt;br /&gt;
&lt;br /&gt;
Nachfolgend u.a. Hinweise zur Konfiguration auf dem GISpunkt-HSR-Rechner (gis.hsr.ch). Ganz unten einige allgemeine Weblinks zu MediaWiki. Siehe dazu auch [[Joomla]].&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
&lt;br /&gt;
* Exportieren:&lt;br /&gt;
** Beispiel: http://gis.hsr.ch//wiki/Spezial:Exportieren/HSR&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Installation GISpunkt Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Letzte Aktualisierung ===&lt;br /&gt;
* 2011-01-17: Update auf Version 1.16.1&lt;br /&gt;
** Aufräumen der installierten Extensions&lt;br /&gt;
&lt;br /&gt;
=== Angepasste Hauptseite (Startseite) ===&lt;br /&gt;
&lt;br /&gt;
Mit [[MediaWiki:Sidebar]] (Navigation) angepasst (als WikiSysop). Original siehe &amp;quot;Diskussion:Hauptseite&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Test: Siehe [[Hauptseite]] (= Startseite).&lt;br /&gt;
&lt;br /&gt;
=== LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Erlaubte File Upload (Hochladen) &#039;File Extensions&#039;: pdf, wav, mp3, ogg, zip.&lt;br /&gt;
* Das Verzeichnis $wgUploadDirectory und alle Subelemente müssen im Filesystem für den Webserver-User beschreibbar sein&lt;br /&gt;
&lt;br /&gt;
=== Manuelle Anpassungen ===&lt;br /&gt;
&lt;br /&gt;
* Der benutzte Skin (Monobook) wurde angepasst, damit auf Mobiltelefonen das Handheld-CSS erzwungen wird. Dazu ist die Erkennung über den User-Agent-String in MonoBook.php implementiert.&lt;br /&gt;
* Das handheld.css wurde angepasst: #siteSub { display: none; }&lt;br /&gt;
&lt;br /&gt;
=== Installierte Extensions ===&lt;br /&gt;
&lt;br /&gt;
* FlashMP3 (MP3-Playback), siehe [http://www.mediawiki.org/wiki/Extension:FlashMP3 Extension:FlashMP3]&lt;br /&gt;
* VideoFlash (displays videos from e.g. Youtube), siehe [http://www.mediawiki.org/wiki/Extension:VideoFlash Extension:VideoFlash]&lt;br /&gt;
* SlideShare (embed SlideShare presentations), siehe [http://www.mediawiki.org/wiki/Extension:SlideShare Extension:SlideShare]&lt;br /&gt;
* OggHandler (display Ogg audio and video files), siehe [http://www.mediawiki.org/wiki/Extension:OggHandler Extension:OggHandler]&lt;br /&gt;
* LanguageSelector (lässt Auswahl der UI-Sprache zu), siehe [http://www.mediawiki.org/wiki/Extension:LanguageSelector Extension:LanguageSelector]&lt;br /&gt;
* reCAPTCHA (platziert ein Captcha bei Neuregistrierung und Seitenänderung mit neuen Links), siehe [http://www.mediawiki.org/wiki/Extension:ReCAPTCHA Extension:ReCAPTCHA]&lt;br /&gt;
* MediaWikiAuthTool (erlaubt externen Applikationen eine User-Authentisierung via MediaWiki-Datenbank), siehe [[MediaWikiAuthTool]]&lt;br /&gt;
* QRCode (für URL erzeugen)&lt;br /&gt;
* MultiUpload (allows users to upload more than one file at a time), siehe [http://www.mediawiki.org/wiki/Extension:MultiUpload Extension:MultiUpload]&lt;br /&gt;
* MWSearch (fetch search results from Lucene), siehe [http://www.mediawiki.org/wiki/Extension:MWSearch Extension:MWSearch]&lt;br /&gt;
* Lucene-search (Lucene backend for MWSearch), siehe [http://www.mediawiki.org/wiki/Extension:Lucene-search Extension:Lucene-search]&lt;br /&gt;
&lt;br /&gt;
=== Lucene-Search ===&lt;br /&gt;
&lt;br /&gt;
Extension Lucene-search ist installiert in /usr/local/lucene-search-[version] (softlink /usr/local/lucene-search).&lt;br /&gt;
Script zum Starten/Stoppen des Daemons ist /etc/init.d/wikilsearchd&lt;br /&gt;
Cron-Job ist /etc/cron.hourly/wikilucenerebuild&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen für GIS ==&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[WikiGIS]] und die MediaWiki-Projektseite.&lt;br /&gt;
&lt;br /&gt;
Wiki-Karte und Geo-Tagging von Artikel:&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:GeoRSS - WikiMedia extension for GeoRSS. Easy interface for geotagging MediaWiki articles, and publishes a GeoRSS feed of all mapped articles in the Wiki, for mapping and syndication. By Mikel Maron.&lt;br /&gt;
* http://hexten.net/wiki/index.php/Wiki_Widgets - Hexten - Wiki Widgets are extensions for MediaWiki that provide simple ways to embed information from other sources within a wiki page. &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Google_Maps - WikiMedia extension for Google Maps &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:KML_Export - WikiMedia extension for KML Export &lt;br /&gt;
* http://wikimap.sourceforge.net/Main_Page - WikiMap is a dynamic (&#039;web 2.0&#039;) map that allows you to easily add locations to it. These locations show up on the map as markers. When you click a marker a little infowindow pops up. This infowindow can contain text, images, video, you name it. WikiMap is based on Openlayers and WordPress. Author: Robert Buzink.&lt;br /&gt;
&lt;br /&gt;
Google Maps Extensions für MediaWiki:&lt;br /&gt;
* Listen:&lt;br /&gt;
** http://de.wikipedia.org/wiki/Benutzer:Arcy#MediaWiki_anpassen &lt;br /&gt;
** http://en.giswiki.org/wiki/MediaWiki_GIS_Extensions&lt;br /&gt;
** http://en.giswiki.org/wiki/Google_Maps_Extensions/Probleme&lt;br /&gt;
* Tutorials für diverse kleinere Erweiterungen des MediaWikis&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Infofenster-Extension&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Marker_Extension&lt;br /&gt;
*  Google Map Extension, die es erlaubt, Geoinformationsdaten aus RSS Feeds in eine Karte einzubinden [http://meta.wikimedia.org/wiki/User:Mafs/GoogleMapExtension].&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Gis Manske&#039;s Gis-Extension auf WikiMedia]&lt;br /&gt;
** Erweiterung der Datenbank http://en.giswiki.org/wiki/GIS-Extension&lt;br /&gt;
* Eine Erweiterung für das Einbinden einer Google Map in MediaWiki http://en.giswiki.org/wiki/Google_Maps_Extensions&lt;br /&gt;
* Beispielcode für die Erstellung einer Google Map im GISWiki http://en.giswiki.org/wiki/Google_Maps_Extensions/GISWiki&lt;br /&gt;
* Tutorial und Code für das Anzeigen einer georeferenzierte Karte mit eigenen Punktkoordinaten http://en.giswiki.org/wiki/Point-Mapping_Extension&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen allgemein ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:Pdf_Book Pdf_Book] - PDF erzeugen aus Artikel, die in Kategorien oder Bullet Listen organisiert sind.&lt;br /&gt;
* Verbesserte Suche&lt;br /&gt;
* User Management:&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:Newuserlog&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:New_User_Email_Notification&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:ScuttleBookmarks ScuttleBookmarks] - Displays Scuttle bookmarks in a blogroll type view&lt;br /&gt;
* Wiki-Datbase: In sep. Wiki testen?&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=MediaWiki&amp;diff=31781</id>
		<title>MediaWiki</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=MediaWiki&amp;diff=31781"/>
		<updated>2011-01-17T13:55:02Z</updated>

		<summary type="html">&lt;p&gt;Dominik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das GISpunkt Wiki basiert auf der MediaWiki-Software. &lt;br /&gt;
&lt;br /&gt;
Hilfe zum &#039;WikiText&#039; siehe [[Hilfe:Bearbeitungshilfe|MediaWiki-Bearbeitungshilfe]].&lt;br /&gt;
&lt;br /&gt;
Nachfolgend u.a. Hinweise zur Konfiguration auf dem GISpunkt-HSR-Rechner (gis.hsr.ch). Ganz unten einige allgemeine Weblinks zu MediaWiki. Siehe dazu auch [[Joomla]].&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
&lt;br /&gt;
* Exportieren:&lt;br /&gt;
** Beispiel: http://gis.hsr.ch//wiki/Spezial:Exportieren/HSR&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Installation GISpunkt Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Letzte Aktualisierung ===&lt;br /&gt;
* 2011-01-17: Update auf Version 1.16.1&lt;br /&gt;
** Aufräumen der installierten Extensions&lt;br /&gt;
&lt;br /&gt;
=== Angepasste Hauptseite (Startseite) ===&lt;br /&gt;
&lt;br /&gt;
Mit [[MediaWiki:Sidebar]] (Navigation) angepasst (als WikiSysop). Original siehe &amp;quot;Diskussion:Hauptseite&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Test: Siehe [[Hauptseite]] (= Startseite).&lt;br /&gt;
&lt;br /&gt;
=== LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Erlaubte File Upload (Hochladen) &#039;File Extensions&#039;: pdf, wav, mp3, ogg, zip.&lt;br /&gt;
* Das Verzeichnis $wgUploadDirectory und alle Subelemente müssen im Filesystem für den Webserver-User beschreibbar sein&lt;br /&gt;
&lt;br /&gt;
=== Manuelle Anpassungen ===&lt;br /&gt;
&lt;br /&gt;
* Der benutzte Skin (Monobook) wurde angepasst, damit auf Mobiltelefonen das Handheld-CSS erzwungen wird. Dazu ist die Erkennung über den User-Agent-String in MonoBook.php implementiert.&lt;br /&gt;
* Das handheld.css wurde angepasst: #siteSub { display: none; }&lt;br /&gt;
&lt;br /&gt;
=== Installierte Extensions ===&lt;br /&gt;
&lt;br /&gt;
* FlashMP3 (MP3-Playback), siehe [http://www.mediawiki.org/wiki/Extension:FlashMP3 Extension:FlashMP3]&lt;br /&gt;
* VideoFlash (displays videos from e.g. Youtube), siehe [http://www.mediawiki.org/wiki/Extension:VideoFlash Extension:VideoFlash]&lt;br /&gt;
* SlideShare (embed SlideShare presentations), siehe [http://www.mediawiki.org/wiki/Extension:SlideShare Extension:SlideShare]&lt;br /&gt;
* OggHandler (display Ogg audio and video files), siehe [http://www.mediawiki.org/wiki/Extension:OggHandler Extension:OggHandler]&lt;br /&gt;
* LanguageSelector (lässt Auswahl der UI-Sprache zu), siehe [http://www.mediawiki.org/wiki/Extension:LanguageSelector Extension:LanguageSelector]&lt;br /&gt;
* reCAPTCHA (platziert ein Captcha bei Neuregistrierung und Seitenänderung mit neuen Links), siehe [http://www.mediawiki.org/wiki/Extension:ReCAPTCHA Extension:ReCAPTCHA]&lt;br /&gt;
* MediaWikiAuthTool (erlaubt externen Applikationen eine User-Authentisierung via MediaWiki-Datenbank), siehe [[MediaWikiAuthTool]]&lt;br /&gt;
* QRCode (für URL erzeugen)&lt;br /&gt;
* MultiUpload (allows users to upload more than one file at a time), siehe [http://www.mediawiki.org/wiki/Extension:MultiUpload Extension:MultiUpload]&lt;br /&gt;
* MWSearch (fetch search results from Lucene), siehe [http://www.mediawiki.org/wiki/Extension:MWSearch Extension:MWSearch]&lt;br /&gt;
* Lucene-search (Lucene backend for MWSearch), siehe [http://www.mediawiki.org/wiki/Extension:Lucene-search Extension:Lucene-search]&lt;br /&gt;
&lt;br /&gt;
=== Lucene-Search ===&lt;br /&gt;
&lt;br /&gt;
Extension Lucene-search ist installiert in /usr/local/lucene-search-[version] (softlink /usr/local/lucene-search).&lt;br /&gt;
Script zum Starten/Stoppen des Daemons ist /etc/init.d/wikilsearchd&lt;br /&gt;
Cron-Job ist /etc/cron.hourly/wikilucenerebuild&lt;br /&gt;
&lt;br /&gt;
=== KML Export Extension ===&lt;br /&gt;
&lt;br /&gt;
KML Export ist eine Extension, welche KML-Dateien vom Inhalt von Artikelseiten für Google Earth generiert.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen siehe [[KML Export Extension]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen für GIS ==&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[WikiGIS]] und die MediaWiki-Projektseite.&lt;br /&gt;
&lt;br /&gt;
Wiki-Karte und Geo-Tagging von Artikel:&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:GeoRSS - WikiMedia extension for GeoRSS. Easy interface for geotagging MediaWiki articles, and publishes a GeoRSS feed of all mapped articles in the Wiki, for mapping and syndication. By Mikel Maron.&lt;br /&gt;
* http://hexten.net/wiki/index.php/Wiki_Widgets - Hexten - Wiki Widgets are extensions for MediaWiki that provide simple ways to embed information from other sources within a wiki page. &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Google_Maps - WikiMedia extension for Google Maps &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:KML_Export - WikiMedia extension for KML Export &lt;br /&gt;
* http://wikimap.sourceforge.net/Main_Page - WikiMap is a dynamic (&#039;web 2.0&#039;) map that allows you to easily add locations to it. These locations show up on the map as markers. When you click a marker a little infowindow pops up. This infowindow can contain text, images, video, you name it. WikiMap is based on Openlayers and WordPress. Author: Robert Buzink.&lt;br /&gt;
&lt;br /&gt;
Google Maps Extensions für MediaWiki:&lt;br /&gt;
* Listen:&lt;br /&gt;
** http://de.wikipedia.org/wiki/Benutzer:Arcy#MediaWiki_anpassen &lt;br /&gt;
** http://en.giswiki.org/wiki/MediaWiki_GIS_Extensions&lt;br /&gt;
** http://en.giswiki.org/wiki/Google_Maps_Extensions/Probleme&lt;br /&gt;
* Tutorials für diverse kleinere Erweiterungen des MediaWikis&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Infofenster-Extension&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Marker_Extension&lt;br /&gt;
*  Google Map Extension, die es erlaubt, Geoinformationsdaten aus RSS Feeds in eine Karte einzubinden [http://meta.wikimedia.org/wiki/User:Mafs/GoogleMapExtension].&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Gis Manske&#039;s Gis-Extension auf WikiMedia]&lt;br /&gt;
** Erweiterung der Datenbank http://en.giswiki.org/wiki/GIS-Extension&lt;br /&gt;
* Eine Erweiterung für das Einbinden einer Google Map in MediaWiki http://en.giswiki.org/wiki/Google_Maps_Extensions&lt;br /&gt;
* Beispielcode für die Erstellung einer Google Map im GISWiki http://en.giswiki.org/wiki/Google_Maps_Extensions/GISWiki&lt;br /&gt;
* Tutorial und Code für das Anzeigen einer georeferenzierte Karte mit eigenen Punktkoordinaten http://en.giswiki.org/wiki/Point-Mapping_Extension&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen allgemein ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:Pdf_Book Pdf_Book] - PDF erzeugen aus Artikel, die in Kategorien oder Bullet Listen organisiert sind.&lt;br /&gt;
* Verbesserte Suche&lt;br /&gt;
* User Management:&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:Newuserlog&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:New_User_Email_Notification&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:ScuttleBookmarks ScuttleBookmarks] - Displays Scuttle bookmarks in a blogroll type view&lt;br /&gt;
* Wiki-Datbase: In sep. Wiki testen?&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=MediaWiki&amp;diff=31780</id>
		<title>MediaWiki</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=MediaWiki&amp;diff=31780"/>
		<updated>2011-01-17T13:38:01Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Letzte Aktualisierung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das GISpunkt Wiki basiert auf der MediaWiki-Software. &lt;br /&gt;
&lt;br /&gt;
Hilfe zum &#039;WikiText&#039; siehe [[Hilfe:Bearbeitungshilfe|MediaWiki-Bearbeitungshilfe]].&lt;br /&gt;
&lt;br /&gt;
Nachfolgend u.a. Hinweise zur Konfiguration auf dem GISpunkt-HSR-Rechner (gis.hsr.ch). Ganz unten einige allgemeine Weblinks zu MediaWiki. Siehe dazu auch [[Joomla]].&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
&lt;br /&gt;
* Exportieren:&lt;br /&gt;
** Beispiel: http://gis.hsr.ch//wiki/Spezial:Exportieren/HSR&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Installation GISpunkt Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Letzte Aktualisierung ===&lt;br /&gt;
* 2011-01-17: Update auf Version 1.16.1&lt;br /&gt;
** Aufräumen der installierten Extensions&lt;br /&gt;
&lt;br /&gt;
=== Angepasste Hauptseite (Startseite) ===&lt;br /&gt;
&lt;br /&gt;
Mit [[MediaWiki:Sidebar]] (Navigation) angepasst (als WikiSysop). Original siehe &amp;quot;Diskussion:Hauptseite&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Test: Siehe [[Hauptseite]] (= Startseite).&lt;br /&gt;
&lt;br /&gt;
=== LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Erlaubte File Upload (Hochladen) &#039;File Extensions&#039;: pdf, wav, mp3, ogg, zip.&lt;br /&gt;
* Das Verzeichnis $wgUploadDirectory und alle Subelemente müssen im Filesystem für den Webserver-User beschreibbar sein&lt;br /&gt;
&lt;br /&gt;
=== Manuelle Anpassungen ===&lt;br /&gt;
&lt;br /&gt;
* Der benutzte Skin (Monobook) wurde angepasst, damit auf Mobiltelefonen das Handheld-CSS erzwungen wird. Dazu ist die Erkennung über den User-Agent-String in MonoBook.php implementiert.&lt;br /&gt;
* Das handheld.css wurde angepasst: #siteSub { display: none; }&lt;br /&gt;
&lt;br /&gt;
=== Installierte Extensions ===&lt;br /&gt;
&lt;br /&gt;
* FlashMP3 (MP3-Playback), siehe [http://www.mediawiki.org/wiki/Extension:FlashMP3 Extension:FlashMP3]&lt;br /&gt;
* VideoFlash (displays videos from e.g. Youtube), siehe [http://www.mediawiki.org/wiki/Extension:VideoFlash Extension:VideoFlash]&lt;br /&gt;
* SlideShare (embed SlideShare presentations), siehe [http://www.mediawiki.org/wiki/Extension:SlideShare Extension:SlideShare]&lt;br /&gt;
* OggHandler (display Ogg audio and video files), siehe [http://www.mediawiki.org/wiki/Extension:OggHandler Extension:OggHandler]&lt;br /&gt;
* LanguageSelector (lässt Auswahl der UI-Sprache zu), siehe [http://www.mediawiki.org/wiki/Extension:LanguageSelector Extension:LanguageSelector]&lt;br /&gt;
* reCAPTCHA (platziert ein Captcha bei Neuregistrierung und Seitenänderung mit neuen Links), siehe [http://www.mediawiki.org/wiki/Extension:ReCAPTCHA Extension:ReCAPTCHA]&lt;br /&gt;
* MediaWikiAuthTool (erlaubt externen Applikationen eine User-Authentisierung via MediaWiki-Datenbank), siehe [[MediaWikiAuthTool]]&lt;br /&gt;
* QRCode (für URL erzeugen)&lt;br /&gt;
* MultiUpload (allows users to upload more than one file at a time), siehe [http://www.mediawiki.org/wiki/Extension:MultiUpload Extension:MultiUpload]&lt;br /&gt;
* MWSearch (fetch search results from Lucene), siehe [http://www.mediawiki.org/wiki/Extension:MWSearch Extension:MWSearch]&lt;br /&gt;
* Lucene-search (Lucene backend for MWSearch), siehe [http://www.mediawiki.org/wiki/Extension:Lucene-search Extension:Lucene-search]&lt;br /&gt;
&lt;br /&gt;
=== Lucene-Search ===&lt;br /&gt;
&lt;br /&gt;
Extension Lucene-search ist installiert in /usr/local/lucene-search-[version] (softlink /usr/local/lucene-search).&lt;br /&gt;
Script zum Starten/Stoppen des Daemons ist /etc/init.d/wikilsearchd&lt;br /&gt;
Cron-Job ist /etc/cron.hourly/wikilucenerebuild&lt;br /&gt;
&lt;br /&gt;
=== WikiPointMap ===&lt;br /&gt;
&lt;br /&gt;
Zur Anleitung der [[WikiPointMap]], die zu den AddPageFromMap- und KML Export-Extensions passt.&lt;br /&gt;
&lt;br /&gt;
=== KML Export Extension ===&lt;br /&gt;
&lt;br /&gt;
KML Export ist eine Extension, welche KML-Dateien vom Inhalt von Artikelseiten für Google Earth generiert.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen siehe [[KML Export Extension]].&lt;br /&gt;
&lt;br /&gt;
=== AddPageFromMap Extension ===&lt;br /&gt;
&lt;br /&gt;
Um die Webapplikation zusammen mit WikiPointMap nutzen zu können, muss diese AddPageFromMap-Extension installiert werden.&lt;br /&gt;
&lt;br /&gt;
Siehe originale Startseite der [[AddPageFromMap Extension]].&lt;br /&gt;
&lt;br /&gt;
=== DataMatrix-Extensions ===&lt;br /&gt;
&lt;br /&gt;
Diese [http://www.haelfi.ch/sa1/Information_MediaWiki_Extensions DataMatrix-Extensions] sind Bestandteil der Studienarbeit [http://www.haelfi.ch/sa1 MobileTags4Wikis].&lt;br /&gt;
&lt;br /&gt;
Download: http://www.haelfi.ch/sa1/Installation_Extensions&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen für GIS ==&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[WikiGIS]] und die MediaWiki-Projektseite.&lt;br /&gt;
&lt;br /&gt;
Wiki-Karte und Geo-Tagging von Artikel:&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:GeoRSS - WikiMedia extension for GeoRSS. Easy interface for geotagging MediaWiki articles, and publishes a GeoRSS feed of all mapped articles in the Wiki, for mapping and syndication. By Mikel Maron.&lt;br /&gt;
* http://hexten.net/wiki/index.php/Wiki_Widgets - Hexten - Wiki Widgets are extensions for MediaWiki that provide simple ways to embed information from other sources within a wiki page. &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Google_Maps - WikiMedia extension for Google Maps &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:KML_Export - WikiMedia extension for KML Export &lt;br /&gt;
* http://wikimap.sourceforge.net/Main_Page - WikiMap is a dynamic (&#039;web 2.0&#039;) map that allows you to easily add locations to it. These locations show up on the map as markers. When you click a marker a little infowindow pops up. This infowindow can contain text, images, video, you name it. WikiMap is based on Openlayers and WordPress. Author: Robert Buzink.&lt;br /&gt;
&lt;br /&gt;
Google Maps Extensions für MediaWiki:&lt;br /&gt;
* Listen:&lt;br /&gt;
** http://de.wikipedia.org/wiki/Benutzer:Arcy#MediaWiki_anpassen &lt;br /&gt;
** http://en.giswiki.org/wiki/MediaWiki_GIS_Extensions&lt;br /&gt;
** http://en.giswiki.org/wiki/Google_Maps_Extensions/Probleme&lt;br /&gt;
* Tutorials für diverse kleinere Erweiterungen des MediaWikis&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Infofenster-Extension&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Marker_Extension&lt;br /&gt;
*  Google Map Extension, die es erlaubt, Geoinformationsdaten aus RSS Feeds in eine Karte einzubinden [http://meta.wikimedia.org/wiki/User:Mafs/GoogleMapExtension].&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Gis Manske&#039;s Gis-Extension auf WikiMedia]&lt;br /&gt;
** Erweiterung der Datenbank http://en.giswiki.org/wiki/GIS-Extension&lt;br /&gt;
* Eine Erweiterung für das Einbinden einer Google Map in MediaWiki http://en.giswiki.org/wiki/Google_Maps_Extensions&lt;br /&gt;
* Beispielcode für die Erstellung einer Google Map im GISWiki http://en.giswiki.org/wiki/Google_Maps_Extensions/GISWiki&lt;br /&gt;
* Tutorial und Code für das Anzeigen einer georeferenzierte Karte mit eigenen Punktkoordinaten http://en.giswiki.org/wiki/Point-Mapping_Extension&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen allgemein ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:Pdf_Book Pdf_Book] - PDF erzeugen aus Artikel, die in Kategorien oder Bullet Listen organisiert sind.&lt;br /&gt;
* Verbesserte Suche&lt;br /&gt;
* User Management:&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:Newuserlog&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:New_User_Email_Notification&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:ScuttleBookmarks ScuttleBookmarks] - Displays Scuttle bookmarks in a blogroll type view&lt;br /&gt;
* Wiki-Datbase: In sep. Wiki testen?&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=MediaWiki&amp;diff=31779</id>
		<title>MediaWiki</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=MediaWiki&amp;diff=31779"/>
		<updated>2011-01-17T13:37:21Z</updated>

		<summary type="html">&lt;p&gt;Dominik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das GISpunkt Wiki basiert auf der MediaWiki-Software. &lt;br /&gt;
&lt;br /&gt;
Hilfe zum &#039;WikiText&#039; siehe [[Hilfe:Bearbeitungshilfe|MediaWiki-Bearbeitungshilfe]].&lt;br /&gt;
&lt;br /&gt;
Nachfolgend u.a. Hinweise zur Konfiguration auf dem GISpunkt-HSR-Rechner (gis.hsr.ch). Ganz unten einige allgemeine Weblinks zu MediaWiki. Siehe dazu auch [[Joomla]].&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
&lt;br /&gt;
* Exportieren:&lt;br /&gt;
** Beispiel: http://gis.hsr.ch//wiki/Spezial:Exportieren/HSR&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Installation GISpunkt Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Letzte Aktualisierung ===&lt;br /&gt;
* Update auf Version 1.16.1&lt;br /&gt;
** Aufräumen der installierten Extensions&lt;br /&gt;
* Update auf Version 1.15.1&lt;br /&gt;
** Extension [http://www.mediawiki.org/wiki/Extension:Newuserlog Newuserlog] ist seit 1.14.0 im Core und wurde entfernt&lt;br /&gt;
* Update auf Version 1.11&lt;br /&gt;
** Dabei ist folgender Fehler aufgetreten:&lt;br /&gt;
*** http://www.mediawiki.org/wiki/Manual:Short_URL/Page_title_--_Working_method_with_mediawiki-1.11&lt;br /&gt;
*** http://www.organicdesign.co.nz/MediaWiki_1.11_title_extraction_bug&lt;br /&gt;
&lt;br /&gt;
=== Angepasste Hauptseite (Startseite) ===&lt;br /&gt;
&lt;br /&gt;
Mit [[MediaWiki:Sidebar]] (Navigation) angepasst (als WikiSysop). Original siehe &amp;quot;Diskussion:Hauptseite&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Test: Siehe [[Hauptseite]] (= Startseite).&lt;br /&gt;
&lt;br /&gt;
=== LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Erlaubte File Upload (Hochladen) &#039;File Extensions&#039;: pdf, wav, mp3, ogg, zip.&lt;br /&gt;
* Das Verzeichnis $wgUploadDirectory und alle Subelemente müssen im Filesystem für den Webserver-User beschreibbar sein&lt;br /&gt;
&lt;br /&gt;
=== Manuelle Anpassungen ===&lt;br /&gt;
&lt;br /&gt;
* Der benutzte Skin (Monobook) wurde angepasst, damit auf Mobiltelefonen das Handheld-CSS erzwungen wird. Dazu ist die Erkennung über den User-Agent-String in MonoBook.php implementiert.&lt;br /&gt;
* Das handheld.css wurde angepasst: #siteSub { display: none; }&lt;br /&gt;
&lt;br /&gt;
=== Installierte Extensions ===&lt;br /&gt;
&lt;br /&gt;
* FlashMP3 (MP3-Playback), siehe [http://www.mediawiki.org/wiki/Extension:FlashMP3 Extension:FlashMP3]&lt;br /&gt;
* VideoFlash (displays videos from e.g. Youtube), siehe [http://www.mediawiki.org/wiki/Extension:VideoFlash Extension:VideoFlash]&lt;br /&gt;
* SlideShare (embed SlideShare presentations), siehe [http://www.mediawiki.org/wiki/Extension:SlideShare Extension:SlideShare]&lt;br /&gt;
* OggHandler (display Ogg audio and video files), siehe [http://www.mediawiki.org/wiki/Extension:OggHandler Extension:OggHandler]&lt;br /&gt;
* LanguageSelector (lässt Auswahl der UI-Sprache zu), siehe [http://www.mediawiki.org/wiki/Extension:LanguageSelector Extension:LanguageSelector]&lt;br /&gt;
* reCAPTCHA (platziert ein Captcha bei Neuregistrierung und Seitenänderung mit neuen Links), siehe [http://www.mediawiki.org/wiki/Extension:ReCAPTCHA Extension:ReCAPTCHA]&lt;br /&gt;
* MediaWikiAuthTool (erlaubt externen Applikationen eine User-Authentisierung via MediaWiki-Datenbank), siehe [[MediaWikiAuthTool]]&lt;br /&gt;
* QRCode (für URL erzeugen)&lt;br /&gt;
* MultiUpload (allows users to upload more than one file at a time), siehe [http://www.mediawiki.org/wiki/Extension:MultiUpload Extension:MultiUpload]&lt;br /&gt;
* MWSearch (fetch search results from Lucene), siehe [http://www.mediawiki.org/wiki/Extension:MWSearch Extension:MWSearch]&lt;br /&gt;
* Lucene-search (Lucene backend for MWSearch), siehe [http://www.mediawiki.org/wiki/Extension:Lucene-search Extension:Lucene-search]&lt;br /&gt;
&lt;br /&gt;
=== Lucene-Search ===&lt;br /&gt;
&lt;br /&gt;
Extension Lucene-search ist installiert in /usr/local/lucene-search-[version] (softlink /usr/local/lucene-search).&lt;br /&gt;
Script zum Starten/Stoppen des Daemons ist /etc/init.d/wikilsearchd&lt;br /&gt;
Cron-Job ist /etc/cron.hourly/wikilucenerebuild&lt;br /&gt;
&lt;br /&gt;
=== WikiPointMap ===&lt;br /&gt;
&lt;br /&gt;
Zur Anleitung der [[WikiPointMap]], die zu den AddPageFromMap- und KML Export-Extensions passt.&lt;br /&gt;
&lt;br /&gt;
=== KML Export Extension ===&lt;br /&gt;
&lt;br /&gt;
KML Export ist eine Extension, welche KML-Dateien vom Inhalt von Artikelseiten für Google Earth generiert.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen siehe [[KML Export Extension]].&lt;br /&gt;
&lt;br /&gt;
=== AddPageFromMap Extension ===&lt;br /&gt;
&lt;br /&gt;
Um die Webapplikation zusammen mit WikiPointMap nutzen zu können, muss diese AddPageFromMap-Extension installiert werden.&lt;br /&gt;
&lt;br /&gt;
Siehe originale Startseite der [[AddPageFromMap Extension]].&lt;br /&gt;
&lt;br /&gt;
=== DataMatrix-Extensions ===&lt;br /&gt;
&lt;br /&gt;
Diese [http://www.haelfi.ch/sa1/Information_MediaWiki_Extensions DataMatrix-Extensions] sind Bestandteil der Studienarbeit [http://www.haelfi.ch/sa1 MobileTags4Wikis].&lt;br /&gt;
&lt;br /&gt;
Download: http://www.haelfi.ch/sa1/Installation_Extensions&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen für GIS ==&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[WikiGIS]] und die MediaWiki-Projektseite.&lt;br /&gt;
&lt;br /&gt;
Wiki-Karte und Geo-Tagging von Artikel:&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:GeoRSS - WikiMedia extension for GeoRSS. Easy interface for geotagging MediaWiki articles, and publishes a GeoRSS feed of all mapped articles in the Wiki, for mapping and syndication. By Mikel Maron.&lt;br /&gt;
* http://hexten.net/wiki/index.php/Wiki_Widgets - Hexten - Wiki Widgets are extensions for MediaWiki that provide simple ways to embed information from other sources within a wiki page. &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Google_Maps - WikiMedia extension for Google Maps &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:KML_Export - WikiMedia extension for KML Export &lt;br /&gt;
* http://wikimap.sourceforge.net/Main_Page - WikiMap is a dynamic (&#039;web 2.0&#039;) map that allows you to easily add locations to it. These locations show up on the map as markers. When you click a marker a little infowindow pops up. This infowindow can contain text, images, video, you name it. WikiMap is based on Openlayers and WordPress. Author: Robert Buzink.&lt;br /&gt;
&lt;br /&gt;
Google Maps Extensions für MediaWiki:&lt;br /&gt;
* Listen:&lt;br /&gt;
** http://de.wikipedia.org/wiki/Benutzer:Arcy#MediaWiki_anpassen &lt;br /&gt;
** http://en.giswiki.org/wiki/MediaWiki_GIS_Extensions&lt;br /&gt;
** http://en.giswiki.org/wiki/Google_Maps_Extensions/Probleme&lt;br /&gt;
* Tutorials für diverse kleinere Erweiterungen des MediaWikis&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Infofenster-Extension&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Marker_Extension&lt;br /&gt;
*  Google Map Extension, die es erlaubt, Geoinformationsdaten aus RSS Feeds in eine Karte einzubinden [http://meta.wikimedia.org/wiki/User:Mafs/GoogleMapExtension].&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Gis Manske&#039;s Gis-Extension auf WikiMedia]&lt;br /&gt;
** Erweiterung der Datenbank http://en.giswiki.org/wiki/GIS-Extension&lt;br /&gt;
* Eine Erweiterung für das Einbinden einer Google Map in MediaWiki http://en.giswiki.org/wiki/Google_Maps_Extensions&lt;br /&gt;
* Beispielcode für die Erstellung einer Google Map im GISWiki http://en.giswiki.org/wiki/Google_Maps_Extensions/GISWiki&lt;br /&gt;
* Tutorial und Code für das Anzeigen einer georeferenzierte Karte mit eigenen Punktkoordinaten http://en.giswiki.org/wiki/Point-Mapping_Extension&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen allgemein ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:Pdf_Book Pdf_Book] - PDF erzeugen aus Artikel, die in Kategorien oder Bullet Listen organisiert sind.&lt;br /&gt;
* Verbesserte Suche&lt;br /&gt;
* User Management:&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:Newuserlog&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:New_User_Email_Notification&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:ScuttleBookmarks ScuttleBookmarks] - Displays Scuttle bookmarks in a blogroll type view&lt;br /&gt;
* Wiki-Datbase: In sep. Wiki testen?&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=MediaWiki&amp;diff=31778</id>
		<title>MediaWiki</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=MediaWiki&amp;diff=31778"/>
		<updated>2011-01-17T13:36:51Z</updated>

		<summary type="html">&lt;p&gt;Dominik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das GISpunkt Wiki basiert auf der MediaWiki-Software. &lt;br /&gt;
&lt;br /&gt;
Hilfe zum &#039;WikiText&#039; siehe [[Hilfe:Bearbeitungshilfe|MediaWiki-Bearbeitungshilfe]].&lt;br /&gt;
&lt;br /&gt;
Nachfolgend u.a. Hinweise zur Konfiguration auf dem GISpunkt-HSR-Rechner (gis.hsr.ch). Ganz unten einige allgemeine Weblinks zu MediaWiki. Siehe dazu auch [[Joomla]].&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
&lt;br /&gt;
* Exportieren:&lt;br /&gt;
** Beispiel: http://gis.hsr.ch//wiki/Spezial:Exportieren/HSR&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Installation GISpunkt Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Letzte Aktualisierung ===&lt;br /&gt;
* Update auf Version 1.16.1&lt;br /&gt;
** Aufräumen der installierten Extensions&lt;br /&gt;
* Update auf Version 1.15.1&lt;br /&gt;
** Extension [http://www.mediawiki.org/wiki/Extension:Newuserlog Newuserlog] ist seit 1.14.0 im Core und wurde entfernt&lt;br /&gt;
* Update auf Version 1.11&lt;br /&gt;
** Dabei ist folgender Fehler aufgetreten:&lt;br /&gt;
*** http://www.mediawiki.org/wiki/Manual:Short_URL/Page_title_--_Working_method_with_mediawiki-1.11&lt;br /&gt;
*** http://www.organicdesign.co.nz/MediaWiki_1.11_title_extraction_bug&lt;br /&gt;
&lt;br /&gt;
=== Angepasste Hauptseite (Startseite) ===&lt;br /&gt;
&lt;br /&gt;
Mit [[MediaWiki:Sidebar]] (Navigation) angepasst (als WikiSysop). Original siehe &amp;quot;Diskussion:Hauptseite&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Test: Siehe [[Hauptseite]] (= Startseite).&lt;br /&gt;
&lt;br /&gt;
=== LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Erlaubte File Upload (Hochladen) &#039;File Extensions&#039;: pdf, wav, mp3, ogg, zip.&lt;br /&gt;
* Das Verzeichnis $wgUploadDirectory und alle Subelemente müssen im Filesystem für den Webserver-User beschreibbar sein&lt;br /&gt;
&lt;br /&gt;
=== Manuelle Anpassungen ===&lt;br /&gt;
&lt;br /&gt;
* Der benutzte Skin (Monobook) wurde angepasst, damit auf Mobiltelefonen das Handheld-CSS erzwungen wird. Dazu ist die Erkennung über den User-Agent-String in MonoBook.php implementiert.&lt;br /&gt;
* Das handheld.css wurde angepasst: #siteSub { display: none; }&lt;br /&gt;
&lt;br /&gt;
=== Installierte Extensions ===&lt;br /&gt;
&lt;br /&gt;
* FlashMP3 (MP3-Playback), siehe [http://www.mediawiki.org/wiki/Extension:FlashMP3 Extension:FlashMP3]&lt;br /&gt;
* VideoFlash (displays videos from e.g. Youtube), siehe [http://www.mediawiki.org/wiki/Extension:VideoFlash Extension:VideoFlash]&lt;br /&gt;
* SlideShare (embed SlideShare presentations), siehe [http://www.mediawiki.org/wiki/Extension:SlideShare Extension:SlideShare]&lt;br /&gt;
* OggHandler (display Ogg audio and video files), siehe [http://www.mediawiki.org/wiki/Extension:OggHandler Extension:OggHandler]&lt;br /&gt;
* LanguageSelector (lässt Auswahl der UI-Sprache zu), siehe [http://www.mediawiki.org/wiki/Extension:LanguageSelector Extension:LanguageSelector]&lt;br /&gt;
* reCAPTCHA (platziert ein Captcha bei Neuregistrierung und Seitenänderung mit neuen Links), siehe [http://www.mediawiki.org/wiki/Extension:ReCAPTCHA Extension:ReCAPTCHA]&lt;br /&gt;
* MediaWikiAuthTool (erlaubt externen Applikationen eine User-Authentisierung via MediaWiki-Datenbank), siehe [[MediaWikiAuthTool]]&lt;br /&gt;
* QRCode (für URL erzeugen)&lt;br /&gt;
* MultiUpload (allows users to upload more than one file at a time), siehe [http://www.mediawiki.org/wiki/Extension:MultiUpload Extension:MultiUpload]&lt;br /&gt;
* MWSearch (fetch search results from Lucene), siehe [http://www.mediawiki.org/wiki/Extension:MWSearch Extension:MWSearch]&lt;br /&gt;
* Lucene-search (Lucene backend for MWSearch), siehe [http://www.mediawiki.org/wiki/Extension:Lucene-search Extension:Lucene-search]&lt;br /&gt;
&lt;br /&gt;
=== Lucene-Search ===&lt;br /&gt;
&lt;br /&gt;
Extension Lucene-search ist installiert in /usr/local/lucene-search-[version] (softlink /usr/local/lucene-search).&lt;br /&gt;
Script zum Starten/Stoppen des Daemons ist /etc/init.d/wikilsearchd&lt;br /&gt;
Cron-Job ist /etc/cron.hourly/wikilucenerebuild&lt;br /&gt;
&lt;br /&gt;
=== WikiPointMap ===&lt;br /&gt;
&lt;br /&gt;
Zur Anleitung der [[WikiPointMap]], die zu den AddPageFromMap- und KML Export-Extensions passt.&lt;br /&gt;
&lt;br /&gt;
=== KML Export Extension ===&lt;br /&gt;
&lt;br /&gt;
KML Export ist eine Extension, welche KML-Dateien vom Inhalt von Artikelseiten für Google Earth generiert.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen siehe [[KML Export Extension]].&lt;br /&gt;
&lt;br /&gt;
=== AddPageFromMap Extension ===&lt;br /&gt;
&lt;br /&gt;
Um die Webapplikation zusammen mit WikiPointMap nutzen zu können, muss diese AddPageFromMap-Extension installiert werden.&lt;br /&gt;
&lt;br /&gt;
Siehe originale Startseite der [[AddPageFromMap Extension]].&lt;br /&gt;
&lt;br /&gt;
=== DataMatrix-Extensions ===&lt;br /&gt;
&lt;br /&gt;
Diese [http://www.haelfi.ch/sa1/Information_MediaWiki_Extensions DataMatrix-Extensions] sind Bestandteil der Studienarbeit [http://www.haelfi.ch/sa1 MobileTags4Wikis].&lt;br /&gt;
&lt;br /&gt;
Download: http://www.haelfi.ch/sa1/Installation_Extensions&lt;br /&gt;
&lt;br /&gt;
=== Lucene-Search ===&lt;br /&gt;
&lt;br /&gt;
Lucene-Search wird für verbesserte Volltextsuchresultate eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://www.mediawiki.org/wiki/Extension:Lucene-search Extension:Lucene-search] und [http://www.mediawiki.org/wiki/Extension:MWSearch Extension:MWSearch]&lt;br /&gt;
&lt;br /&gt;
Die cron-job-Konfig. startet 1x pro Stunde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen für GIS ==&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[WikiGIS]] und die MediaWiki-Projektseite.&lt;br /&gt;
&lt;br /&gt;
Wiki-Karte und Geo-Tagging von Artikel:&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:GeoRSS - WikiMedia extension for GeoRSS. Easy interface for geotagging MediaWiki articles, and publishes a GeoRSS feed of all mapped articles in the Wiki, for mapping and syndication. By Mikel Maron.&lt;br /&gt;
* http://hexten.net/wiki/index.php/Wiki_Widgets - Hexten - Wiki Widgets are extensions for MediaWiki that provide simple ways to embed information from other sources within a wiki page. &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Google_Maps - WikiMedia extension for Google Maps &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:KML_Export - WikiMedia extension for KML Export &lt;br /&gt;
* http://wikimap.sourceforge.net/Main_Page - WikiMap is a dynamic (&#039;web 2.0&#039;) map that allows you to easily add locations to it. These locations show up on the map as markers. When you click a marker a little infowindow pops up. This infowindow can contain text, images, video, you name it. WikiMap is based on Openlayers and WordPress. Author: Robert Buzink.&lt;br /&gt;
&lt;br /&gt;
Google Maps Extensions für MediaWiki:&lt;br /&gt;
* Listen:&lt;br /&gt;
** http://de.wikipedia.org/wiki/Benutzer:Arcy#MediaWiki_anpassen &lt;br /&gt;
** http://en.giswiki.org/wiki/MediaWiki_GIS_Extensions&lt;br /&gt;
** http://en.giswiki.org/wiki/Google_Maps_Extensions/Probleme&lt;br /&gt;
* Tutorials für diverse kleinere Erweiterungen des MediaWikis&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Infofenster-Extension&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Marker_Extension&lt;br /&gt;
*  Google Map Extension, die es erlaubt, Geoinformationsdaten aus RSS Feeds in eine Karte einzubinden [http://meta.wikimedia.org/wiki/User:Mafs/GoogleMapExtension].&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Gis Manske&#039;s Gis-Extension auf WikiMedia]&lt;br /&gt;
** Erweiterung der Datenbank http://en.giswiki.org/wiki/GIS-Extension&lt;br /&gt;
* Eine Erweiterung für das Einbinden einer Google Map in MediaWiki http://en.giswiki.org/wiki/Google_Maps_Extensions&lt;br /&gt;
* Beispielcode für die Erstellung einer Google Map im GISWiki http://en.giswiki.org/wiki/Google_Maps_Extensions/GISWiki&lt;br /&gt;
* Tutorial und Code für das Anzeigen einer georeferenzierte Karte mit eigenen Punktkoordinaten http://en.giswiki.org/wiki/Point-Mapping_Extension&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen allgemein ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:Pdf_Book Pdf_Book] - PDF erzeugen aus Artikel, die in Kategorien oder Bullet Listen organisiert sind.&lt;br /&gt;
* Verbesserte Suche&lt;br /&gt;
* User Management:&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:Newuserlog&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:New_User_Email_Notification&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:ScuttleBookmarks ScuttleBookmarks] - Displays Scuttle bookmarks in a blogroll type view&lt;br /&gt;
* Wiki-Datbase: In sep. Wiki testen?&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=MediaWiki&amp;diff=31777</id>
		<title>MediaWiki</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=MediaWiki&amp;diff=31777"/>
		<updated>2011-01-17T12:56:17Z</updated>

		<summary type="html">&lt;p&gt;Dominik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das GISpunkt Wiki basiert auf der MediaWiki-Software. &lt;br /&gt;
&lt;br /&gt;
Hilfe zum &#039;WikiText&#039; siehe [[Hilfe:Bearbeitungshilfe|MediaWiki-Bearbeitungshilfe]].&lt;br /&gt;
&lt;br /&gt;
Nachfolgend u.a. Hinweise zur Konfiguration auf dem GISpunkt-HSR-Rechner (gis.hsr.ch). Ganz unten einige allgemeine Weblinks zu MediaWiki. Siehe dazu auch [[Joomla]].&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
&lt;br /&gt;
* Exportieren:&lt;br /&gt;
** Beispiel: http://gis.hsr.ch//wiki/Spezial:Exportieren/HSR&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Installation GISpunkt Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Letzte Aktualisierung ===&lt;br /&gt;
* Update auf Version 1.15.1&lt;br /&gt;
** Extension [http://www.mediawiki.org/wiki/Extension:Newuserlog Newuserlog] ist seit 1.14.0 im Core und wurde entfernt&lt;br /&gt;
* Update auf Version 1.11&lt;br /&gt;
** Dabei ist folgender Fehler aufgetreten:&lt;br /&gt;
*** http://www.mediawiki.org/wiki/Manual:Short_URL/Page_title_--_Working_method_with_mediawiki-1.11&lt;br /&gt;
*** http://www.organicdesign.co.nz/MediaWiki_1.11_title_extraction_bug&lt;br /&gt;
&lt;br /&gt;
=== Angepasste Hauptseite (Startseite) ===&lt;br /&gt;
&lt;br /&gt;
Mit [[MediaWiki:Sidebar]] (Navigation) angepasst (als WikiSysop). Original siehe &amp;quot;Diskussion:Hauptseite&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Test: Siehe [[Hauptseite]] (= Startseite).&lt;br /&gt;
&lt;br /&gt;
=== LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Erlaubte File Upload (Hochladen) &#039;File Extensions&#039;: pdf, wav, mp3, ogg, zip.&lt;br /&gt;
* Das Verzeichnis $wgUploadDirectory und alle Subelemente müssen im Filesystem für den Webserver-User beschreibbar sein&lt;br /&gt;
&lt;br /&gt;
=== Manuelle Anpassungen ===&lt;br /&gt;
&lt;br /&gt;
* Der benutzte Skin (Monobook) wurde angepasst, damit auf Mobiltelefonen das Handheld-CSS erzwungen wird. Dazu ist die Erkennung über den User-Agent-String in MonoBook.php implementiert.&lt;br /&gt;
* Das handheld.css wurde angepasst: #siteSub { display: none; }&lt;br /&gt;
&lt;br /&gt;
=== Installierte Extensions ===&lt;br /&gt;
&lt;br /&gt;
* FlashMP3 (MP3-Playback), siehe [http://www.mediawiki.org/wiki/Extension:FlashMP3 Extension:FlashMP3]&lt;br /&gt;
* VideoFlash (displays videos from e.g. Youtube), siehe [http://www.mediawiki.org/wiki/Extension:VideoFlash Extension:VideoFlash]&lt;br /&gt;
* SlideShare (embed SlideShare presentations), siehe [http://www.mediawiki.org/wiki/Extension:SlideShare Extension:SlideShare]&lt;br /&gt;
* OggHandler (display Ogg audio and video files), siehe [http://www.mediawiki.org/wiki/Extension:OggHandler Extension:OggHandler]&lt;br /&gt;
* LanguageSelector (lässt Auswahl der UI-Sprache zu), siehe [http://www.mediawiki.org/wiki/Extension:LanguageSelector Extension:LanguageSelector]&lt;br /&gt;
* reCAPTCHA (platziert ein Captcha bei Neuregistrierung und Seitenänderung mit neuen Links), siehe [http://www.mediawiki.org/wiki/Extension:ReCAPTCHA Extension:ReCAPTCHA]&lt;br /&gt;
* MediaWikiAuthTool (erlaubt externen Applikationen eine User-Authentisierung via MediaWiki-Datenbank), siehe [[MediaWikiAuthTool]]&lt;br /&gt;
* QRCode (für URL erzeugen)&lt;br /&gt;
* MultiUpload (allows users to upload more than one file at a time), siehe [http://www.mediawiki.org/wiki/Extension:MultiUpload Extension:MultiUpload]&lt;br /&gt;
&lt;br /&gt;
=== WikiPointMap ===&lt;br /&gt;
&lt;br /&gt;
Zur Anleitung der [[WikiPointMap]], die zu den AddPageFromMap- und KML Export-Extensions passt.&lt;br /&gt;
&lt;br /&gt;
=== KML Export Extension ===&lt;br /&gt;
&lt;br /&gt;
KML Export ist eine Extension, welche KML-Dateien vom Inhalt von Artikelseiten für Google Earth generiert.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen siehe [[KML Export Extension]].&lt;br /&gt;
&lt;br /&gt;
=== AddPageFromMap Extension ===&lt;br /&gt;
&lt;br /&gt;
Um die Webapplikation zusammen mit WikiPointMap nutzen zu können, muss diese AddPageFromMap-Extension installiert werden.&lt;br /&gt;
&lt;br /&gt;
Siehe originale Startseite der [[AddPageFromMap Extension]].&lt;br /&gt;
&lt;br /&gt;
=== DataMatrix-Extensions ===&lt;br /&gt;
&lt;br /&gt;
Diese [http://www.haelfi.ch/sa1/Information_MediaWiki_Extensions DataMatrix-Extensions] sind Bestandteil der Studienarbeit [http://www.haelfi.ch/sa1 MobileTags4Wikis].&lt;br /&gt;
&lt;br /&gt;
Download: http://www.haelfi.ch/sa1/Installation_Extensions&lt;br /&gt;
&lt;br /&gt;
=== Lucene-Search ===&lt;br /&gt;
&lt;br /&gt;
Lucene-Search wird für verbesserte Volltextsuchresultate eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://www.mediawiki.org/wiki/Extension:Lucene-search Extension:Lucene-search] und [http://www.mediawiki.org/wiki/Extension:MWSearch Extension:MWSearch]&lt;br /&gt;
&lt;br /&gt;
Die cron-job-Konfig. startet 1x pro Stunde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen für GIS ==&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[WikiGIS]] und die MediaWiki-Projektseite.&lt;br /&gt;
&lt;br /&gt;
Wiki-Karte und Geo-Tagging von Artikel:&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:GeoRSS - WikiMedia extension for GeoRSS. Easy interface for geotagging MediaWiki articles, and publishes a GeoRSS feed of all mapped articles in the Wiki, for mapping and syndication. By Mikel Maron.&lt;br /&gt;
* http://hexten.net/wiki/index.php/Wiki_Widgets - Hexten - Wiki Widgets are extensions for MediaWiki that provide simple ways to embed information from other sources within a wiki page. &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Google_Maps - WikiMedia extension for Google Maps &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:KML_Export - WikiMedia extension for KML Export &lt;br /&gt;
* http://wikimap.sourceforge.net/Main_Page - WikiMap is a dynamic (&#039;web 2.0&#039;) map that allows you to easily add locations to it. These locations show up on the map as markers. When you click a marker a little infowindow pops up. This infowindow can contain text, images, video, you name it. WikiMap is based on Openlayers and WordPress. Author: Robert Buzink.&lt;br /&gt;
&lt;br /&gt;
Google Maps Extensions für MediaWiki:&lt;br /&gt;
* Listen:&lt;br /&gt;
** http://de.wikipedia.org/wiki/Benutzer:Arcy#MediaWiki_anpassen &lt;br /&gt;
** http://en.giswiki.org/wiki/MediaWiki_GIS_Extensions&lt;br /&gt;
** http://en.giswiki.org/wiki/Google_Maps_Extensions/Probleme&lt;br /&gt;
* Tutorials für diverse kleinere Erweiterungen des MediaWikis&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Infofenster-Extension&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Marker_Extension&lt;br /&gt;
*  Google Map Extension, die es erlaubt, Geoinformationsdaten aus RSS Feeds in eine Karte einzubinden [http://meta.wikimedia.org/wiki/User:Mafs/GoogleMapExtension].&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Gis Manske&#039;s Gis-Extension auf WikiMedia]&lt;br /&gt;
** Erweiterung der Datenbank http://en.giswiki.org/wiki/GIS-Extension&lt;br /&gt;
* Eine Erweiterung für das Einbinden einer Google Map in MediaWiki http://en.giswiki.org/wiki/Google_Maps_Extensions&lt;br /&gt;
* Beispielcode für die Erstellung einer Google Map im GISWiki http://en.giswiki.org/wiki/Google_Maps_Extensions/GISWiki&lt;br /&gt;
* Tutorial und Code für das Anzeigen einer georeferenzierte Karte mit eigenen Punktkoordinaten http://en.giswiki.org/wiki/Point-Mapping_Extension&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen allgemein ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:Pdf_Book Pdf_Book] - PDF erzeugen aus Artikel, die in Kategorien oder Bullet Listen organisiert sind.&lt;br /&gt;
* Verbesserte Suche&lt;br /&gt;
* User Management:&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:Newuserlog&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:New_User_Email_Notification&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:ScuttleBookmarks ScuttleBookmarks] - Displays Scuttle bookmarks in a blogroll type view&lt;br /&gt;
* Wiki-Datbase: In sep. Wiki testen?&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=MediaWiki&amp;diff=31776</id>
		<title>MediaWiki</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=MediaWiki&amp;diff=31776"/>
		<updated>2011-01-17T12:55:37Z</updated>

		<summary type="html">&lt;p&gt;Dominik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das GISpunkt Wiki basiert auf der MediaWiki-Software. &lt;br /&gt;
&lt;br /&gt;
Hilfe zum &#039;WikiText&#039; siehe [[Hilfe:Bearbeitungshilfe|MediaWiki-Bearbeitungshilfe]].&lt;br /&gt;
&lt;br /&gt;
Nachfolgend u.a. Hinweise zur Konfiguration auf dem GISpunkt-HSR-Rechner (gis.hsr.ch). Ganz unten einige allgemeine Weblinks zu MediaWiki. Siehe dazu auch [[Joomla]].&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
&lt;br /&gt;
* Exportieren:&lt;br /&gt;
** Beispiel: http://gis.hsr.ch//wiki/Spezial:Exportieren/HSR&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Installation GISpunkt Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Letzte Aktualisierung ===&lt;br /&gt;
* Update auf Version 1.15.1&lt;br /&gt;
** Extension [http://www.mediawiki.org/wiki/Extension:Newuserlog Newuserlog] ist seit 1.14.0 im Core und wurde entfernt&lt;br /&gt;
* Update auf Version 1.11&lt;br /&gt;
** Dabei ist folgender Fehler aufgetreten:&lt;br /&gt;
*** http://www.mediawiki.org/wiki/Manual:Short_URL/Page_title_--_Working_method_with_mediawiki-1.11&lt;br /&gt;
*** http://www.organicdesign.co.nz/MediaWiki_1.11_title_extraction_bug&lt;br /&gt;
&lt;br /&gt;
=== Angepasste Hauptseite (Startseite) ===&lt;br /&gt;
&lt;br /&gt;
Mit [[MediaWiki:Sidebar]] (Navigation) angepasst (als WikiSysop). Original siehe &amp;quot;Diskussion:Hauptseite&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Test: Siehe [[Hauptseite]] (= Startseite).&lt;br /&gt;
&lt;br /&gt;
=== LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Erlaubte File Upload (Hochladen) &#039;File Extensions&#039;: pdf, wav, mp3, ogg, zip.&lt;br /&gt;
* Das Verzeichnis $wgUploadDirectory und alle Subelemente müssen im Filesystem für den Webserver-User beschreibbar sein&lt;br /&gt;
&lt;br /&gt;
=== Manuelle Anpassungen ===&lt;br /&gt;
&lt;br /&gt;
* Der benutzte Skin (Monobook) wurde angepasst, damit auf Mobiltelefonen das Handheld-CSS erzwungen wird. Dazu ist die Erkennung über den User-Agent-String in MonoBook.php implementiert.&lt;br /&gt;
* Das handheld.css wurde angepasst: #siteSub { display: none; }&lt;br /&gt;
&lt;br /&gt;
=== Installierte Extensions ===&lt;br /&gt;
&lt;br /&gt;
* FlashMP3 (MP3-Playback), siehe [http://www.mediawiki.org/wiki/Extension:FlashMP3 Extension:FlashMP3]&lt;br /&gt;
* VideoFlash (displays videos from e.g. Youtube), siehe [http://www.mediawiki.org/wiki/Extension:VideoFlash Extension:VideoFlash]&lt;br /&gt;
* SlideShare (embed SlideShare presentations), siehe [http://www.mediawiki.org/wiki/Extension:SlideShare Extension:SlideShare]&lt;br /&gt;
* OggHandler (display Ogg audio and video files), siehe [http://www.mediawiki.org/wiki/Extension:OggHandler Extension:OggHandler]&lt;br /&gt;
* LanguageSelector (lässt Auswahl der UI-Sprache zu), siehe [http://www.mediawiki.org/wiki/Extension:LanguageSelector Extension:LanguageSelector]&lt;br /&gt;
* reCAPTCHA (platziert ein Captcha bei Neuregistrierung und Seitenänderung mit neuen Links), siehe [http://www.mediawiki.org/wiki/Extension:ReCAPTCHA Extension:ReCAPTCHA]&lt;br /&gt;
* MediaWikiAuthTool (erlaubt externen Applikationen eine User-Authentisierung via MediaWiki-Datenbank), siehe [[MediaWikiAuthTool]]&lt;br /&gt;
* QRCode (für URL erzeugen)&lt;br /&gt;
* MultiUpload (allows users to upload more than one file at a time), siehe [http://www.mediawiki.org/wiki/Extension:MultiUpload]&lt;br /&gt;
&lt;br /&gt;
=== WikiPointMap ===&lt;br /&gt;
&lt;br /&gt;
Zur Anleitung der [[WikiPointMap]], die zu den AddPageFromMap- und KML Export-Extensions passt.&lt;br /&gt;
&lt;br /&gt;
=== KML Export Extension ===&lt;br /&gt;
&lt;br /&gt;
KML Export ist eine Extension, welche KML-Dateien vom Inhalt von Artikelseiten für Google Earth generiert.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen siehe [[KML Export Extension]].&lt;br /&gt;
&lt;br /&gt;
=== AddPageFromMap Extension ===&lt;br /&gt;
&lt;br /&gt;
Um die Webapplikation zusammen mit WikiPointMap nutzen zu können, muss diese AddPageFromMap-Extension installiert werden.&lt;br /&gt;
&lt;br /&gt;
Siehe originale Startseite der [[AddPageFromMap Extension]].&lt;br /&gt;
&lt;br /&gt;
=== DataMatrix-Extensions ===&lt;br /&gt;
&lt;br /&gt;
Diese [http://www.haelfi.ch/sa1/Information_MediaWiki_Extensions DataMatrix-Extensions] sind Bestandteil der Studienarbeit [http://www.haelfi.ch/sa1 MobileTags4Wikis].&lt;br /&gt;
&lt;br /&gt;
Download: http://www.haelfi.ch/sa1/Installation_Extensions&lt;br /&gt;
&lt;br /&gt;
=== Lucene-Search ===&lt;br /&gt;
&lt;br /&gt;
Lucene-Search wird für verbesserte Volltextsuchresultate eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://www.mediawiki.org/wiki/Extension:Lucene-search Extension:Lucene-search] und [http://www.mediawiki.org/wiki/Extension:MWSearch Extension:MWSearch]&lt;br /&gt;
&lt;br /&gt;
Die cron-job-Konfig. startet 1x pro Stunde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen für GIS ==&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[WikiGIS]] und die MediaWiki-Projektseite.&lt;br /&gt;
&lt;br /&gt;
Wiki-Karte und Geo-Tagging von Artikel:&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:GeoRSS - WikiMedia extension for GeoRSS. Easy interface for geotagging MediaWiki articles, and publishes a GeoRSS feed of all mapped articles in the Wiki, for mapping and syndication. By Mikel Maron.&lt;br /&gt;
* http://hexten.net/wiki/index.php/Wiki_Widgets - Hexten - Wiki Widgets are extensions for MediaWiki that provide simple ways to embed information from other sources within a wiki page. &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Google_Maps - WikiMedia extension for Google Maps &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:KML_Export - WikiMedia extension for KML Export &lt;br /&gt;
* http://wikimap.sourceforge.net/Main_Page - WikiMap is a dynamic (&#039;web 2.0&#039;) map that allows you to easily add locations to it. These locations show up on the map as markers. When you click a marker a little infowindow pops up. This infowindow can contain text, images, video, you name it. WikiMap is based on Openlayers and WordPress. Author: Robert Buzink.&lt;br /&gt;
&lt;br /&gt;
Google Maps Extensions für MediaWiki:&lt;br /&gt;
* Listen:&lt;br /&gt;
** http://de.wikipedia.org/wiki/Benutzer:Arcy#MediaWiki_anpassen &lt;br /&gt;
** http://en.giswiki.org/wiki/MediaWiki_GIS_Extensions&lt;br /&gt;
** http://en.giswiki.org/wiki/Google_Maps_Extensions/Probleme&lt;br /&gt;
* Tutorials für diverse kleinere Erweiterungen des MediaWikis&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Infofenster-Extension&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Marker_Extension&lt;br /&gt;
*  Google Map Extension, die es erlaubt, Geoinformationsdaten aus RSS Feeds in eine Karte einzubinden [http://meta.wikimedia.org/wiki/User:Mafs/GoogleMapExtension].&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Gis Manske&#039;s Gis-Extension auf WikiMedia]&lt;br /&gt;
** Erweiterung der Datenbank http://en.giswiki.org/wiki/GIS-Extension&lt;br /&gt;
* Eine Erweiterung für das Einbinden einer Google Map in MediaWiki http://en.giswiki.org/wiki/Google_Maps_Extensions&lt;br /&gt;
* Beispielcode für die Erstellung einer Google Map im GISWiki http://en.giswiki.org/wiki/Google_Maps_Extensions/GISWiki&lt;br /&gt;
* Tutorial und Code für das Anzeigen einer georeferenzierte Karte mit eigenen Punktkoordinaten http://en.giswiki.org/wiki/Point-Mapping_Extension&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen allgemein ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:Pdf_Book Pdf_Book] - PDF erzeugen aus Artikel, die in Kategorien oder Bullet Listen organisiert sind.&lt;br /&gt;
* Verbesserte Suche&lt;br /&gt;
* User Management:&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:Newuserlog&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:New_User_Email_Notification&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:ScuttleBookmarks ScuttleBookmarks] - Displays Scuttle bookmarks in a blogroll type view&lt;br /&gt;
* Wiki-Datbase: In sep. Wiki testen?&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=28133</id>
		<title>Diskussion:HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=28133"/>
		<updated>2010-09-06T08:02:16Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Observations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Feel free to discusss &#039;HSR Texas Spatial Database Benchmark&#039; issues here! [[Benutzer:Stefan|Stefan]] 18:39, 22. Dez. 2009 (CET)&lt;br /&gt;
&lt;br /&gt;
== To do ==&lt;br /&gt;
* Standardise data and input process (circumvent or minimize floating point problem)&lt;br /&gt;
* Define the variables (@bbox and @point)&lt;br /&gt;
&lt;br /&gt;
== Observations ==&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
* MS SQL Server representatives report that geography types are 20-30% slower than geometry types.&lt;br /&gt;
* About PostGIS 1.5 there was said, that geography types are somewhat faster (see http://blog.cleverelephant.ca/)&lt;br /&gt;
* Secondary index optimization makes performance about 50% faster (from: MS SQL Server discussion) &lt;br /&gt;
* The number of points of a query window is important for a secondary filter overhead.&lt;br /&gt;
&lt;br /&gt;
Data and queries per se:&lt;br /&gt;
* These queries return quite large percent of the data overall (50%-100% for points and polygons)&lt;br /&gt;
* The Number of points for a query windows is very small. &lt;br /&gt;
* The query windows are &amp;quot;aligned bounding boxes&amp;quot; which may put in favor RTree (e.g. Postgres) or spatial grid (SQL Server) index, depending on a position of the window. If the window is aligned with the grid, performance can be much faster than when it&#039;s slightly off.&lt;br /&gt;
* Volker Mische reported that boundingbox queries with different boundingboxes (selecting 5%, 10%, 15%, 20%, 25% of all features) show the same performance in spatialite.&lt;br /&gt;
&lt;br /&gt;
== Discussion Points ==&lt;br /&gt;
&lt;br /&gt;
* Should we take an average of multiple runs with different values (@point, @bbox)?&lt;br /&gt;
* Should we vary the queries&#039; result sizes? (see observations)&lt;br /&gt;
* Should we vary the shape and alignment of the query window? (see observations)&lt;br /&gt;
* Should we run the benchmark with parallelized queries?&lt;br /&gt;
&lt;br /&gt;
== Review ==&lt;br /&gt;
* Query 1 actually shouldn&#039;t be included in the benchmark, data copying and preparation isn&#039;t really done often in a spatial database.&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=28130</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=28130"/>
		<updated>2010-09-03T09:30:08Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Scripts for benchmark automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance Within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
See: http://gitorious.org/spatialbenchmark/pages/Home&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* [http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest DevWikiGardenTest] on osgeo.org&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/FOSS4G_Benchmark FOSS4G Benchmark (for WMS)] on osgeo.org&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Sandkasten&amp;diff=27316</id>
		<title>Sandkasten</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Sandkasten&amp;diff=27316"/>
		<updated>2010-06-02T06:44:02Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* MP3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dies ist eine Testseite von Sandkaste ==&lt;br /&gt;
adfasdfasdfsdfdfsdf&lt;br /&gt;
dfasdf&lt;br /&gt;
asd&lt;br /&gt;
fasd&lt;br /&gt;
fasdf&lt;br /&gt;
;adfa df adf adf: adfdfdasf&lt;br /&gt;
# adfasdfasdf&lt;br /&gt;
# adfasdfadsf&lt;br /&gt;
AAAAAAAAAAAAAAAAAAAA&lt;br /&gt;
----&lt;br /&gt;
BBBBBBBBBBBBBBBBBB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- dasfa sdf asdf adf adf afd  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  dfa df asdf asdf asd f  ===&lt;br /&gt;
&lt;br /&gt;
adfasdfasd sdff safd&lt;br /&gt;
dfad&lt;br /&gt;
sf sa afdsds&lt;br /&gt;
dsf&lt;br /&gt;
adsf&lt;br /&gt;
&lt;br /&gt;
=== abc ===&lt;br /&gt;
adfasdf&lt;br /&gt;
d&lt;br /&gt;
fdf&lt;br /&gt;
&lt;br /&gt;
== Extension-Test ==&lt;br /&gt;
=== Youtube ===&lt;br /&gt;
&amp;lt;videoflash&amp;gt;qHzYlV_E9B8&amp;lt;/videoflash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== GoogleVideo ===&lt;br /&gt;
&amp;lt;videoflash type=&amp;quot;googlevideo&amp;quot;&amp;gt;1811233136844420765&amp;lt;/videoflash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SlideShare ===&lt;br /&gt;
{{#slideshare:amazing-photos-1192957086440148-5}}&lt;br /&gt;
&lt;br /&gt;
=== Ogg Vorbis ===&lt;br /&gt;
[[Image:Compilation-ogg-q4.ogg]]&lt;br /&gt;
&lt;br /&gt;
=== Ogg Theora ===&lt;br /&gt;
[[Image:320x240.ogg]]&lt;br /&gt;
&lt;br /&gt;
=== MP3 ===&lt;br /&gt;
&amp;lt;flashmp3&amp;gt;Compilation_mp3_128.mp3&amp;lt;/flashmp3&amp;gt;&lt;br /&gt;
&amp;lt;flashmp3&amp;gt;The saga begins.mp3&amp;lt;/flashmp3&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Datei:The_saga_begins.mp3&amp;diff=27315</id>
		<title>Datei:The saga begins.mp3</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Datei:The_saga_begins.mp3&amp;diff=27315"/>
		<updated>2010-06-02T06:43:23Z</updated>

		<summary type="html">&lt;p&gt;Dominik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26366</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26366"/>
		<updated>2010-02-26T08:19:14Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Scripts for benchmark automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
Get the scripts (Python 2.6+ required):&lt;br /&gt;
* Download the latest tar-archive: http://gitorious.org/spatialbenchmark/spatialbenchmark/archive-tarball/master (try reloading the url, the generation process takes some seconds)&lt;br /&gt;
* Or checkout using git: &amp;lt;code&amp;gt;git clone git://gitorious.org/spatialbenchmark/spatialbenchmark.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt; folder for database specific import instructions.&lt;br /&gt;
&lt;br /&gt;
Call the script generator in the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; folder to get the available options: &amp;lt;code&amp;gt;python benchmark.py --help&amp;lt;/code&amp;gt;. Use option &amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt; first to load the datasubsets (see Query 1) or &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt; afterwards to run the benchmark. Specify the output filename with &amp;lt;code&amp;gt;-o FILE&amp;lt;/code&amp;gt; or pipe the output directly to the sql interpreter (e.g. &amp;lt;code&amp;gt;python benchmark.py -d spatialite -l | spatialite texas.sqlite&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26166</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26166"/>
		<updated>2010-02-18T15:03:15Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Scripts for benchmark automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
Get the scripts (Python 2.6+ required):&lt;br /&gt;
* Download the latest tar-archive: http://gitorious.org/spatialbenchmark/spatialbenchmark/archive-tarball/master&lt;br /&gt;
* Or checkout using git: &amp;lt;code&amp;gt;git clone git://gitorious.org/spatialbenchmark/spatialbenchmark.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt; folder for database specific import instructions.&lt;br /&gt;
&lt;br /&gt;
Call the script generator in the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; folder to get the available options: &amp;lt;code&amp;gt;python benchmark.py --help&amp;lt;/code&amp;gt;. Use option &amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt; first to load the datasubsets (see Query 1) or &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt; afterwards to run the benchmark. Specify the output filename with &amp;lt;code&amp;gt;-o FILE&amp;lt;/code&amp;gt; or pipe the output directly to the sql interpreter (e.g. &amp;lt;code&amp;gt;python benchmark.py -d spatialite -l | spatialite texas.sqlite&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26165</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26165"/>
		<updated>2010-02-18T15:03:04Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Scripts for benchmark automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
Get the scripts (Python 2.6 required):&lt;br /&gt;
* Download the latest tar-archive: http://gitorious.org/spatialbenchmark/spatialbenchmark/archive-tarball/master&lt;br /&gt;
* Or checkout using git: &amp;lt;code&amp;gt;git clone git://gitorious.org/spatialbenchmark/spatialbenchmark.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt; folder for database specific import instructions.&lt;br /&gt;
&lt;br /&gt;
Call the script generator in the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; folder to get the available options: &amp;lt;code&amp;gt;python benchmark.py --help&amp;lt;/code&amp;gt;. Use option &amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt; first to load the datasubsets (see Query 1) or &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt; afterwards to run the benchmark. Specify the output filename with &amp;lt;code&amp;gt;-o FILE&amp;lt;/code&amp;gt; or pipe the output directly to the sql interpreter (e.g. &amp;lt;code&amp;gt;python benchmark.py -d spatialite -l | spatialite texas.sqlite&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26164</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26164"/>
		<updated>2010-02-18T15:02:55Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Scripts for benchmark automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
Get the scripts (python 2.6 required):&lt;br /&gt;
* Download the latest tar-archive: http://gitorious.org/spatialbenchmark/spatialbenchmark/archive-tarball/master&lt;br /&gt;
* Or checkout using git: &amp;lt;code&amp;gt;git clone git://gitorious.org/spatialbenchmark/spatialbenchmark.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt; folder for database specific import instructions.&lt;br /&gt;
&lt;br /&gt;
Call the script generator in the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; folder to get the available options: &amp;lt;code&amp;gt;python benchmark.py --help&amp;lt;/code&amp;gt;. Use option &amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt; first to load the datasubsets (see Query 1) or &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt; afterwards to run the benchmark. Specify the output filename with &amp;lt;code&amp;gt;-o FILE&amp;lt;/code&amp;gt; or pipe the output directly to the sql interpreter (e.g. &amp;lt;code&amp;gt;python benchmark.py -d spatialite -l | spatialite texas.sqlite&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26162</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26162"/>
		<updated>2010-02-18T14:54:43Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Scripts for benchmark automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
Get the scripts:&lt;br /&gt;
* Download the latest tar-archive: http://gitorious.org/spatialbenchmark/spatialbenchmark/archive-tarball/master&lt;br /&gt;
* Or checkout using git: &amp;lt;code&amp;gt;git clone git://gitorious.org/spatialbenchmark/spatialbenchmark.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt; folder for database specific import instructions.&lt;br /&gt;
&lt;br /&gt;
Call the script generator in the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; folder to get the available options: &amp;lt;code&amp;gt;python benchmark.py --help&amp;lt;/code&amp;gt;. Use option &amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt; first to load the datasubsets (see Query 1) or &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt; afterwards to run the benchmark. Specify the output filename with &amp;lt;code&amp;gt;-o FILE&amp;lt;/code&amp;gt; or pipe the output directly to the sql interpreter (e.g. &amp;lt;code&amp;gt;python benchmark.py -d spatialite -l | spatialite texas.sqlite&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26161</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26161"/>
		<updated>2010-02-18T14:54:13Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Scripts for benchmark automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
Get the scripts:&lt;br /&gt;
* Download the latest tar-archive: http://gitorious.org/spatialbenchmark/spatialbenchmark/archive-tarball/master&lt;br /&gt;
* Or checkout using git: &amp;lt;code&amp;gt;git clone git://gitorious.org/spatialbenchmark/spatialbenchmark.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt; folder for database specific import instructions.&lt;br /&gt;
&lt;br /&gt;
Call the script generator in the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; folder to get the available options:&lt;br /&gt;
&amp;lt;code&amp;gt;python benchmark.py --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use option &amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt; first to load the datasubsets (see Query 1) or &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt; afterwards to run the benchmark. Specify the output filename with &amp;lt;code&amp;gt;-o FILE&amp;lt;/code&amp;gt; or pipe the output directly to the sql interpreter (e.g. &amp;lt;code&amp;gt;python benchmark.py -d spatialite -l | spatialite texas.sqlite&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26160</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26160"/>
		<updated>2010-02-18T14:49:09Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Scripts for benchmark automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
Get the scripts:&lt;br /&gt;
* Download the latest tar-archive: http://gitorious.org/spatialbenchmark/spatialbenchmark/archive-tarball/master&lt;br /&gt;
* Or checkout using git: &amp;lt;code&amp;gt;git clone git://gitorious.org/spatialbenchmark/spatialbenchmark.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt; folder for import instructions.&lt;br /&gt;
&lt;br /&gt;
Call the script generator in the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; folder to get the available options:&lt;br /&gt;
&amp;lt;code&amp;gt;python benchmark.py --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use option &amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt; first to load the datasubsets (see Query 1) or &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt; afterwards to run the benchmark. Specify the output filename with &amp;lt;code&amp;gt;-o FILE&amp;lt;/code&amp;gt; or pipe the output directly to the sql interpreter (e.g. &amp;lt;code&amp;gt;python benchmark.py -d spatialite -l | spatialite texas.sqlite&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26159</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26159"/>
		<updated>2010-02-18T14:48:58Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Scripts for benchmark automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
Get the scripts:&lt;br /&gt;
* Download the latest tar-archive: http://gitorious.org/spatialbenchmark/spatialbenchmark/archive-tarball/master&lt;br /&gt;
* Checkout using git: &amp;lt;code&amp;gt;git clone git://gitorious.org/spatialbenchmark/spatialbenchmark.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt; folder for import instructions.&lt;br /&gt;
&lt;br /&gt;
Call the script generator in the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; folder to get the available options:&lt;br /&gt;
&amp;lt;code&amp;gt;python benchmark.py --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use option &amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt; first to load the datasubsets (see Query 1) or &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt; afterwards to run the benchmark. Specify the output filename with &amp;lt;code&amp;gt;-o FILE&amp;lt;/code&amp;gt; or pipe the output directly to the sql interpreter (e.g. &amp;lt;code&amp;gt;python benchmark.py -d spatialite -l | spatialite texas.sqlite&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26158</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26158"/>
		<updated>2010-02-18T14:47:57Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Scripts for benchmark automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
Checkout the scripts using git: &amp;lt;code&amp;gt;git clone git://gitorious.org/spatialbenchmark/spatialbenchmark.git&amp;lt;/code&amp;gt; or download the latest tar-archive: http://gitorious.org/spatialbenchmark/spatialbenchmark/archive-tarball/master&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt; folder for import instructions.&lt;br /&gt;
&lt;br /&gt;
Call the script generator in the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; folder to get the available options:&lt;br /&gt;
&amp;lt;code&amp;gt;python benchmark.py --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use option &amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt; first to load the datasubsets (see Query 1) or &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt; afterwards to run the benchmark. Specify the output filename with &amp;lt;code&amp;gt;-o FILE&amp;lt;/code&amp;gt; or pipe the output directly to the sql interpreter (e.g. &amp;lt;code&amp;gt;python benchmark.py -d spatialite -l | spatialite texas.sqlite&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26157</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26157"/>
		<updated>2010-02-18T14:47:37Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Scripts for benchmark automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
Checkout the scripts using git:&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://gitorious.org/spatialbenchmark/spatialbenchmark.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or download the latest tar-archive:&lt;br /&gt;
http://gitorious.org/spatialbenchmark/spatialbenchmark/archive-tarball/master&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt; folder for import instructions.&lt;br /&gt;
&lt;br /&gt;
Call the script generator in the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; folder to get the available options:&lt;br /&gt;
&amp;lt;code&amp;gt;python benchmark.py --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use option &amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt; first to load the datasubsets (see Query 1) or &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt; afterwards to run the benchmark. Specify the output filename with &amp;lt;code&amp;gt;-o FILE&amp;lt;/code&amp;gt; or pipe the output directly to the sql interpreter (e.g. &amp;lt;code&amp;gt;python benchmark.py -d spatialite -l | spatialite texas.sqlite&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26156</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26156"/>
		<updated>2010-02-18T14:47:29Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Scripts for benchmark automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
Checkout the scripts using git:&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://gitorious.org/spatialbenchmark/spatialbenchmark.git&amp;lt;/code&amp;gt;&lt;br /&gt;
Or download the latest tar-archive:&lt;br /&gt;
http://gitorious.org/spatialbenchmark/spatialbenchmark/archive-tarball/master&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt; folder for import instructions.&lt;br /&gt;
&lt;br /&gt;
Call the script generator in the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; folder to get the available options:&lt;br /&gt;
&amp;lt;code&amp;gt;python benchmark.py --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use option &amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt; first to load the datasubsets (see Query 1) or &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt; afterwards to run the benchmark. Specify the output filename with &amp;lt;code&amp;gt;-o FILE&amp;lt;/code&amp;gt; or pipe the output directly to the sql interpreter (e.g. &amp;lt;code&amp;gt;python benchmark.py -d spatialite -l | spatialite texas.sqlite&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26149</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26149"/>
		<updated>2010-02-18T09:09:06Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Scripts for benchmark automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
Checkout the scripts using git:&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://gitorious.org/spatialbenchmark/spatialbenchmark.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt; folder for import instructions.&lt;br /&gt;
&lt;br /&gt;
Call the script generator in the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; folder to get the available options:&lt;br /&gt;
&amp;lt;code&amp;gt;python benchmark.py --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use option &amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt; first to load the datasubsets (see Query 1) or &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt; afterwards to run the benchmark. Specify the output filename with &amp;lt;code&amp;gt;-o FILE&amp;lt;/code&amp;gt; or pipe the output directly to the sql interpreter (e.g. &amp;lt;code&amp;gt;python benchmark.py -d spatialite -l | spatialite texas.sqlite&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26148</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26148"/>
		<updated>2010-02-18T09:08:43Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Scripts for benchmark automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
Checkout the scripts using git:&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://gitorious.org/spatialbenchmark/spatialbenchmark.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt; folder for import instructions.&lt;br /&gt;
&lt;br /&gt;
Call the script generator in the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; folder to get the available options:&lt;br /&gt;
&amp;lt;code&amp;gt;python benchmark.py --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use option &amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt; first to load the datasubsets (see Query 1) or &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt; to run the benchmark. Specify the output filename with &amp;lt;code&amp;gt;-o FILE&amp;lt;/code&amp;gt; or pipe the output directly to the sql interpreter (e.g. &amp;lt;code&amp;gt;python benchmark.py -d spatialite -l | spatialite texas.sqlite&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26147</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26147"/>
		<updated>2010-02-18T09:08:25Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Scripts for benchmark automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
Checkout the scripts using git:&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://gitorious.org/spatialbenchmark/spatialbenchmark.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt; folder for import instructions.&lt;br /&gt;
&lt;br /&gt;
Call the script generator in the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; folder to get the available options:&lt;br /&gt;
&amp;lt;code&amp;gt;python benchmark.py --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use option &amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt; first to load the datasubsets (see Query 1), or &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt; to run the benchmark. Specify the output filename with &amp;lt;code&amp;gt;-o FILE&amp;lt;/code&amp;gt; or pipe the output directly to the sql interpreter (e.g. &amp;lt;code&amp;gt;python benchmark.py -d spatialite -l | spatialite texas.sqlite&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26146</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26146"/>
		<updated>2010-02-18T09:08:11Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Scripts for benchmark automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
See &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt; folder for import instructions.&lt;br /&gt;
&lt;br /&gt;
Checkout the scripts using git:&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://gitorious.org/spatialbenchmark/spatialbenchmark.git&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Call the script generator in the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; folder to get the available options:&lt;br /&gt;
&amp;lt;code&amp;gt;python benchmark.py --help&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use option &amp;lt;code&amp;gt;-l&amp;lt;/code&amp;gt; first to load the datasubsets (see Query 1), or &amp;lt;code&amp;gt;-b&amp;lt;/code&amp;gt; to run the benchmark. Specify the output filename with &amp;lt;code&amp;gt;-o FILE&amp;lt;/code&amp;gt; or pipe the output directly to the sql interpreter (e.g. &amp;lt;code&amp;gt;python benchmark.py -d spatialite -l | spatialite texas.sqlite&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=26145</id>
		<title>Diskussion:HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=26145"/>
		<updated>2010-02-18T07:39:17Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Review */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Feel free to discusss &#039;HSR Texas Spatial Database Benchmark&#039; issues here! [[Benutzer:Stefan|Stefan]] 18:39, 22. Dez. 2009 (CET)&lt;br /&gt;
&lt;br /&gt;
== To do ==&lt;br /&gt;
* Standardise data and input process (circumvent or minimize floating point problem)&lt;br /&gt;
* Define the variables (@bbox and @point)&lt;br /&gt;
&lt;br /&gt;
== Observations ==&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
* MS SQL Server representatives report that geography types are 20-30% slower than geometry types.&lt;br /&gt;
* About PostGIS 1.5 there was said, that geography types are somewhat faster (see http://blog.cleverelephant.ca/)&lt;br /&gt;
* Secondary index optimization makes performance about 50% faster (from: MS SQL Server discussion) &lt;br /&gt;
* The number of points of a query window is important for a secondary filter overhead.&lt;br /&gt;
&lt;br /&gt;
Data and queries per se:&lt;br /&gt;
* These queries return quite large percent of the data overall (50%-100% for points and polygons)&lt;br /&gt;
* The Number of points for a query windows is very small. &lt;br /&gt;
* The query windows are &amp;quot;aligned bounding boxes&amp;quot; which may put in favor RTree (e.g. Postgres) or spatial grid (SQL Server) index, depending on a position of the window. If the window is aligned with the grid, performance can be much faster than when it&#039;s slightly off.&lt;br /&gt;
&lt;br /&gt;
== Discussion Points ==&lt;br /&gt;
&lt;br /&gt;
* Should we take an average of multiple runs with different values (@point, @bbox)?&lt;br /&gt;
* Should we vary the queries&#039; result sizes? (see observations)&lt;br /&gt;
* Should we vary the shape and alignment of the query window? (see observations)&lt;br /&gt;
* Should we run the benchmark with parallelized queries?&lt;br /&gt;
&lt;br /&gt;
== Review ==&lt;br /&gt;
* Query 1 actually shouldn&#039;t be included in the benchmark, data copying and preparation isn&#039;t really done often in a spatial database.&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=26045</id>
		<title>Diskussion:HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=26045"/>
		<updated>2010-02-11T13:49:08Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Review */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Feel free to discusss &#039;HSR Texas Spatial Database Benchmark&#039; issues here! [[Benutzer:Stefan|Stefan]] 18:39, 22. Dez. 2009 (CET)&lt;br /&gt;
&lt;br /&gt;
== To do ==&lt;br /&gt;
* Standardise data and input process (circumvent or minimize floating point problem)&lt;br /&gt;
* Define the variables (@bbox and @point)&lt;br /&gt;
&lt;br /&gt;
== Observations ==&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
* MS SQL Server representatives report that geography types are 20-30% slower than geometry types.&lt;br /&gt;
* About PostGIS 1.5 there was said, that geography types are somewhat faster (see http://blog.cleverelephant.ca/)&lt;br /&gt;
* Secondary index optimization makes performance about 50% faster (from: MS SQL Server discussion) &lt;br /&gt;
* The number of points of a query window is important for a secondary filter overhead.&lt;br /&gt;
&lt;br /&gt;
Data and queries per se:&lt;br /&gt;
* These queries return quite large percent of the data overall (50%-100% for points and polygons)&lt;br /&gt;
* The Number of points for a query windows is very small. &lt;br /&gt;
* The query windows are &amp;quot;aligned bounding boxes&amp;quot; which may put in favor RTree (e.g. Postgres) or spatial grid (SQL Server) index, depending on a position of the window. If the window is aligned with the grid, performance can be much faster than when it&#039;s slightly off.&lt;br /&gt;
&lt;br /&gt;
== Discussion Points ==&lt;br /&gt;
&lt;br /&gt;
* Should we take an average of multiple runs with different values (@point, @bbox)?&lt;br /&gt;
* Should we vary the queries&#039; result sizes? (see observations)&lt;br /&gt;
* Should we vary the shape and alignment of the query window? (see observations)&lt;br /&gt;
* Should we run the benchmark with parallelized queries?&lt;br /&gt;
&lt;br /&gt;
== Review ==&lt;br /&gt;
* Query 1 actually shouldn&#039;t be included in the benchmark, data copying and preparation isn&#039;t really done often in a spatial database.&lt;br /&gt;
* Query 2 is rather pointless without index on &#039;roadflg&#039;. What should be proved with this query anyway?&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26043</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26043"/>
		<updated>2010-02-11T08:32:49Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Query 2. A Non-spatial Selection: Count */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the &#039;roadflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
&lt;br /&gt;
tbd.&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26042</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26042"/>
		<updated>2010-02-11T08:32:24Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Query 5. Spatial Selection III: Intersect/Join Lines and Polygons */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the roadflg to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the &#039;railflg&#039; to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
&lt;br /&gt;
tbd.&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26041</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26041"/>
		<updated>2010-02-11T08:31:49Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Query 4. Spatial Selection II: Distance within */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the roadflg to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;. Make sure the index is used, which usually needs a vendor specific implementation.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the railflg to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
&lt;br /&gt;
tbd.&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26035</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26035"/>
		<updated>2010-02-10T15:04:49Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Query 5. Spatial Selection III: Intersect/Join Lines and Polygons */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the roadflg to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area. We expect the railflg to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
&lt;br /&gt;
tbd.&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26034</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26034"/>
		<updated>2010-02-10T15:03:49Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Query 4. Spatial Selection II: Distance within */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the roadflg to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area.&lt;br /&gt;
&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
&lt;br /&gt;
tbd.&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26033</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26033"/>
		<updated>2010-02-10T15:03:30Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Query 3. Spatial Selection I: Intersect Point, Line and Polygons */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the roadflg to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area.&lt;br /&gt;
&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
&lt;br /&gt;
tbd.&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26032</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26032"/>
		<updated>2010-02-10T15:03:09Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Query 2. A Non-spatial Selection: Count */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads. We expect the roadflg to have an index.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area.&lt;br /&gt;
&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
&lt;br /&gt;
tbd.&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26031</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26031"/>
		<updated>2010-02-10T15:02:00Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Query 2. A Non-spatial Selection: Count */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads.&lt;br /&gt;
&lt;br /&gt;
  SELECT count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area.&lt;br /&gt;
&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
&lt;br /&gt;
tbd.&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26030</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26030"/>
		<updated>2010-02-10T13:25:22Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Query 4. Spatial Selection II: Distance within */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads.&lt;br /&gt;
&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 20000 meters from a given point &#039;@point&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 20000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area.&lt;br /&gt;
&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
&lt;br /&gt;
tbd.&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26029</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26029"/>
		<updated>2010-02-10T13:24:56Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Runtime variables for Queries 3 and 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads.&lt;br /&gt;
&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 1000 meters from a given point &#039;@point&#039;. &lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 1000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 1000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 1000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area.&lt;br /&gt;
&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakeBox2D(ST_MakePoint(-102.311, 29.164), ST_MakePoint(-97.789, 32.836))&lt;br /&gt;
  Points 60000:   ST_MakeBox2D(ST_MakePoint(-102.7765, 28.786), ST_MakePoint(-97.3235, 33.214))&lt;br /&gt;
  Points 80000:   ST_MakeBox2D(ST_MakePoint(-103.1755, 28.462), ST_MakePoint(-96.9245, 33.538))&lt;br /&gt;
  Points 100000:  ST_MakeBox2D(ST_MakePoint(-103.508, 28.192), ST_MakePoint(-96.592, 33.808))&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    ST_MakeBox2D(ST_MakePoint(-101.743755, 29.62462), ST_MakePoint(-98.356245, 32.37538))&lt;br /&gt;
  Line 1000000:   ST_MakeBox2D(ST_MakePoint(-102.0982, 29.3368), ST_MakePoint(-98.0018, 32.6632))&lt;br /&gt;
  Line 1500000:   ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Line 2000000:   ST_MakeBox2D(ST_MakePoint(-102.9893, 28.6132), ST_MakePoint(-97.1107, 33.3868))&lt;br /&gt;
  Line 2500000:   ST_MakeBox2D(ST_MakePoint(-103.242, 28.408), ST_MakePoint(-96.858, 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakeBox2D(ST_MakePoint(-102.227875, 29.2315), ST_MakePoint(-97.872125, 32.7685))&lt;br /&gt;
  Polygon 150000: ST_MakeBox2D(ST_MakePoint(-102.54375, 28.975), ST_MakePoint(-97.55625, 33.025))&lt;br /&gt;
  Polygon 200000: ST_MakeBox2D(ST_MakePoint(-102.79645, 28.7698), ST_MakePoint(-97.30355, 33.2302))&lt;br /&gt;
  Polygon 250000: ST_MakeBox2D(ST_MakePoint(-103.00925, 28.597), ST_MakePoint(-97.09075, 33.403))&lt;br /&gt;
  Polygon 300000: ST_MakeBox2D(ST_MakePoint(-103.2686, 28.3864), ST_MakePoint(-96.8314, 33.6136))&lt;br /&gt;
  Polygon 350000: ST_MakeBox2D(ST_MakePoint(-103.47475, 28.219), ST_MakePoint(-96.62525, 33.781))&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   ST_MakePoint(-102.311, 32.836)&lt;br /&gt;
  Points 60000:   ST_MakePoint(-102.7765, 33.214)&lt;br /&gt;
  Points 80000:   ST_MakePoint(-103.1755, 33.538)&lt;br /&gt;
  Points 100000:  ST_MakePoint(-103.508, 33.808)&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    ST_MakePoint(-101.743755, 30.37538)&lt;br /&gt;
  Line 1000000:   ST_MakePoint(-102.0982, 30.4632)&lt;br /&gt;
  Line 1500000:   ST_MakePoint(-102.54375, 31.025)&lt;br /&gt;
  Line 2000000:   ST_MakePoint(-102.9893, 29.3868)&lt;br /&gt;
  Line 2500000:   ST_MakePoint(-103.242, 30.592)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: ST_MakePoint(-101.227, 30.7685)&lt;br /&gt;
  Polygon 150000: ST_MakePoint(-102.54375, 32.025)&lt;br /&gt;
  Polygon 200000: ST_MakePoint(-102.79645, 32.2302)&lt;br /&gt;
  Polygon 250000: ST_MakePoint(-102.009, 32.951)&lt;br /&gt;
  Polygon 300000: ST_MakePoint(-102.2686, 32.1136)&lt;br /&gt;
  Polygon 350000: ST_MakePoint(-102.47475, 33.781)&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
&lt;br /&gt;
tbd.&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;br /&gt;
* http://trac.osgeo.org/postgis/wiki/DevWikiGardenTest&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=26003</id>
		<title>Diskussion:HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=26003"/>
		<updated>2010-02-09T08:03:24Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Review */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Feel free to discusss &#039;HSR Texas Spatial Database Benchmark&#039; issues here! [[Benutzer:Stefan|Stefan]] 18:39, 22. Dez. 2009 (CET)&lt;br /&gt;
&lt;br /&gt;
== To do ==&lt;br /&gt;
* Standardise data and input process (circumvent or minimize floating point problem)&lt;br /&gt;
* Define the variables (@bbox and @point)&lt;br /&gt;
&lt;br /&gt;
== Observations ==&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
* MS SQL Server representatives report that geography types are 20-30% slower than geometry types.&lt;br /&gt;
* About PostGIS 1.5 there was said, that geography types are somewhat faster (see http://blog.cleverelephant.ca/)&lt;br /&gt;
* Secondary index optimization makes performance about 50% faster (from: MS SQL Server discussion) &lt;br /&gt;
* The number of points of a query window is important for a secondary filter overhead.&lt;br /&gt;
&lt;br /&gt;
Data and queries per se:&lt;br /&gt;
* These queries return quite large percent of the data overall (50%-100% for points and polygons)&lt;br /&gt;
* The Number of points for a query windows is very small. &lt;br /&gt;
* The query windows are &amp;quot;aligned bounding boxes&amp;quot; which may put in favor RTree (e.g. Postgres) or spatial grid (SQL Server) index, depending on a position of the window. If the window is aligned with the grid, performance can be much faster than when it&#039;s slightly off.&lt;br /&gt;
&lt;br /&gt;
== Discussion Points ==&lt;br /&gt;
&lt;br /&gt;
* Should we take an average of multiple runs with different values (@point, @bbox)?&lt;br /&gt;
* Should we vary the queries&#039; result sizes? (see observations)&lt;br /&gt;
* Should we vary the shape and alignment of the query window? (see observations)&lt;br /&gt;
* Should we run the benchmark with parallelized queries?&lt;br /&gt;
&lt;br /&gt;
== Review ==&lt;br /&gt;
* The limiting factor of Query 1 is mainly the performance of the harddisk.&lt;br /&gt;
* Query 1 is rather pointless without index on &#039;roadflg&#039;. What should be proved with this query anyway?&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=26002</id>
		<title>Diskussion:HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=26002"/>
		<updated>2010-02-09T08:02:10Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Review */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Feel free to discusss &#039;HSR Texas Spatial Database Benchmark&#039; issues here! [[Benutzer:Stefan|Stefan]] 18:39, 22. Dez. 2009 (CET)&lt;br /&gt;
&lt;br /&gt;
== To do ==&lt;br /&gt;
* Standardise data and input process (circumvent or minimize floating point problem)&lt;br /&gt;
* Define the variables (@bbox and @point)&lt;br /&gt;
&lt;br /&gt;
== Observations ==&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
* MS SQL Server representatives report that geography types are 20-30% slower than geometry types.&lt;br /&gt;
* About PostGIS 1.5 there was said, that geography types are somewhat faster (see http://blog.cleverelephant.ca/)&lt;br /&gt;
* Secondary index optimization makes performance about 50% faster (from: MS SQL Server discussion) &lt;br /&gt;
* The number of points of a query window is important for a secondary filter overhead.&lt;br /&gt;
&lt;br /&gt;
Data and queries per se:&lt;br /&gt;
* These queries return quite large percent of the data overall (50%-100% for points and polygons)&lt;br /&gt;
* The Number of points for a query windows is very small. &lt;br /&gt;
* The query windows are &amp;quot;aligned bounding boxes&amp;quot; which may put in favor RTree (e.g. Postgres) or spatial grid (SQL Server) index, depending on a position of the window. If the window is aligned with the grid, performance can be much faster than when it&#039;s slightly off.&lt;br /&gt;
&lt;br /&gt;
== Discussion Points ==&lt;br /&gt;
&lt;br /&gt;
* Should we take an average of multiple runs with different values (@point, @bbox)?&lt;br /&gt;
* Should we vary the queries&#039; result sizes? (see observations)&lt;br /&gt;
* Should we vary the shape and alignment of the query window? (see observations)&lt;br /&gt;
* Should we run the benchmark with parallelized queries?&lt;br /&gt;
&lt;br /&gt;
== Review ==&lt;br /&gt;
* The limiting factor of Query 1 is mainly the performance of the harddisk.&lt;br /&gt;
* Query 1 is rather pointless without index on &#039;roadflg&#039;&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26001</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=26001"/>
		<updated>2010-02-09T07:38:00Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Datasets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039;: &lt;br /&gt;
* &#039;Aligned with grid&#039;: e.g. &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039;: &lt;br /&gt;
* E.g. &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* See chapter below.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads.&lt;br /&gt;
&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 1000 meters from a given point &#039;@point&#039;. &lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 1000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 1000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 1000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area.&lt;br /&gt;
&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,002   || ST_MakeBox2D(ST_MakePoint(-103.208, 28.435), ST_MakePoint(-96.891, 33.460))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,001   || ST_MakeBox2D(ST_MakePoint(-104.006, 27.787), ST_MakePoint(-96.093, 34.193))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,001   || ST_MakeBox2D(ST_MakePoint(-104.904, 27.058), ST_MakePoint(-95.195, 34.830))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,002   || ST_MakeBox2D(ST_MakePoint(-106.168, 26.032), ST_MakePoint(-93.932, 35.693))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,161 || ST_MakeBox2D(ST_MakePoint(-102.169, 29.279), ST_MakePoint(-97.930, 30.515))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,000,200 || ST_MakeBox2D(ST_MakePoint(-103.109, 28.516), ST_MakePoint(-96.991, 30.580))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,500,680 || ST_MakeBox2D(ST_MakePoint(-103.518, 28.183), ST_MakePoint(-96.581, 31.255))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,000,250 || ST_MakeBox2D(ST_MakePoint(-104.605, 27.301), ST_MakePoint(-95.494, 30.945))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,500,450 || ST_MakeBox2D(ST_MakePoint(-106.041, 26.134), ST_MakePoint(-94.058, 30.754))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,025   || ST_MakeBox2D(ST_MakePoint(-102.789, 28.775), ST_MakePoint(-97.3102, 33.174))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,038   || ST_MakeBox2D(ST_MakePoint(-103.261, 28.391), ST_MakePoint(-96.8380, 33.556))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,019   || ST_MakeBox2D(ST_MakePoint(-103.674, 28.057), ST_MakePoint(-96.4257, 33.814))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 250,005   || ST_MakeBox2D(ST_MakePoint(-104.272, 27.571), ST_MakePoint(-95.8272, 34.041))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 300,014   || ST_MakeBox2D(ST_MakePoint(-104.691, 27.230), ST_MakePoint(-95.4083, 34.451))&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,002   || ST_MakeBox2D(ST_MakePoint(-105.536, 26.545), ST_MakePoint(-94.5637, 35.042))&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Runtime variables for Queries 3 and 4 ===&lt;br /&gt;
&lt;br /&gt;
Bounding Box data for Query 3 (correspond to an area of about 50% of the elements from the respective subarea)&lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   POLYGON((-102.311 32.836, -102.311 29.164, -97.789 29.164 ,-97.789 32.836, -102.311 32.836))&lt;br /&gt;
  Points 60000:   POLYGON((-102.7765 33.214, -102.7765 28.786, -97.3235 28.786 ,-97.3235 33.214, -102.7765 33.214))&#039;)&lt;br /&gt;
  Points 80000:   POLYGON((-103.1755 33.538, -103.1755 28.462, -96.9245 28.462 ,-96.9245 33.538, -103.1755 33.538))&#039;)&lt;br /&gt;
  Points 100000:  POLYGON((-103.508 33.808, -103.508 28.192, -96.592 28.192 ,-96.592 33.808, -103.508 33.808))&#039;)&lt;br /&gt;
* Lines:&lt;br /&gt;
  Line 500000:    POLYGON((-101.743755 32.37538, -101.743755 29.62462, -98.356245 29.62462 ,-98.356245 32.37538, -101.743755 32.37538))&#039;)&lt;br /&gt;
  Line 1000000:   POLYGON((-102.0982 32.6632, -102.0982 29.3368, -98.0018 29.3368 ,-98.0018 32.6632, -102.0982 32.6632))&#039;)&lt;br /&gt;
  Line 1500000:   POLYGON((-102.54375 33.025, -102.54375 28.975, -97.55625 28.975 ,-97.55625 33.025, -102.54375 33.025))&#039;)&lt;br /&gt;
  Line 2000000:   POLYGON((-102.9893 33.3868, -102.9893 28.6132, -97.1107 28.6132 ,-97.1107 33.3868, -102.9893 33.3868))&#039;)&lt;br /&gt;
  Line 2500000:   POLYGON((-103.242 33.592, -103.242 28.408, -96.858 28.408 ,-96.858 33.592, -103.242 33.592))&#039;)&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: POLYGON((-102.227875 32.7685, -102.227875 29.2315, -97.872125 29.2315 ,-97.872125 32.7685, -102.227875 32.7685))&#039;)&lt;br /&gt;
  Polygon 150000: POLYGON((-102.54375 33.025, -102.54375 28.975, -97.55625 28.975 ,-97.55625 33.025, -102.54375 33.025))&#039;)&lt;br /&gt;
  Polygon 200000: POLYGON((-102.79645 33.2302, -102.79645 28.7698, -97.30355 28.7698 ,-97.30355 33.2302, -102.79645 33.2302))&#039;)&lt;br /&gt;
  Polygon 250000: POLYGON((-103.00925 33.403, -103.00925 28.597, -97.09075 28.597 ,-97.09075 33.403, -103.00925 33.403))&#039;)&lt;br /&gt;
  Polygon 300000: POLYGON((-103.2686 33.6136, -103.2686 28.3864, -96.8314 28.3864 ,-96.8314 33.6136, -103.2686 33.6136))&#039;)&lt;br /&gt;
  Polygon 350000: POLYGON((-103.47475 33.781, -103.47475 28.219, -96.62525 28.219 ,-96.62525 33.781, -103.47475 33.781))&#039;)&lt;br /&gt;
&lt;br /&gt;
Point data for Query 4 &lt;br /&gt;
* Points:&lt;br /&gt;
  Points 40000:   POINT((-102.311 32.836))&lt;br /&gt;
  Points 60000:   POINT((-102.7765 33.214))&lt;br /&gt;
  Points 80000:   POINT((-103.1755 33.538))&lt;br /&gt;
  Points 100000:  POINT((-103.508 33.808))&lt;br /&gt;
* Lines: &lt;br /&gt;
  Line 500000:    POINT((-101.743755 32.37538))&lt;br /&gt;
  Line 1000000:   POINT((-102.0982 32.6632))&lt;br /&gt;
  Line 1500000:   POINT((-102.54375 33.025))&lt;br /&gt;
  Line 2000000:   POINT((-102.9893 33.3868))&lt;br /&gt;
  Line 2500000:   POINT((-103.242 33.592))&lt;br /&gt;
* Polygons:&lt;br /&gt;
  Polygon 100000: POINT((-102.227875 32.7685))&lt;br /&gt;
  Polygon 150000: POINT((-102.54375 33.025))&lt;br /&gt;
  Polygon 200000: POINT((-102.79645 33.2302))&lt;br /&gt;
  Polygon 250000: POINT((-103.00925 33.403))&lt;br /&gt;
  Polygon 300000: POINT((-103.2686 33.6136))&lt;br /&gt;
  Polygon 350000: POINT((-103.47475 33.781))&lt;br /&gt;
&lt;br /&gt;
=== Scripts for benchmark automation ===&lt;br /&gt;
&lt;br /&gt;
tbd.&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=25973</id>
		<title>Diskussion:HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=25973"/>
		<updated>2010-02-08T07:42:53Z</updated>

		<summary type="html">&lt;p&gt;Dominik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Feel free to discusss &#039;HSR Texas Spatial Database Benchmark&#039; issues here! [[Benutzer:Stefan|Stefan]] 18:39, 22. Dez. 2009 (CET)&lt;br /&gt;
&lt;br /&gt;
== To do ==&lt;br /&gt;
* Standardise data and input process (circumvent or minimize floating point problem)&lt;br /&gt;
* Define the variables (@bbox and @point)&lt;br /&gt;
&lt;br /&gt;
== Observations ==&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
* MS SQL Server representatives report that geography types are 20-30% slower than geometry types.&lt;br /&gt;
* About PostGIS 1.5 there was said, that geography types are somewhat faster (see http://blog.cleverelephant.ca/)&lt;br /&gt;
* Secondary index optimization makes performance about 50% faster (from: MS SQL Server discussion) &lt;br /&gt;
* The number of points of a query window is important for a secondary filter overhead.&lt;br /&gt;
&lt;br /&gt;
Data and queries per se:&lt;br /&gt;
* These queries return quite large percent of the data overall (50%-100% for points and polygons)&lt;br /&gt;
* The Number of points for a query windows is very small. &lt;br /&gt;
* The query windows are &amp;quot;aligned bounding boxes&amp;quot; which may put in favor RTree (e.g. Postgres) or spatial grid (SQL Server) index, depending on a position of the window. If the window is aligned with the grid, performance can be much faster than when it&#039;s slightly off.&lt;br /&gt;
&lt;br /&gt;
== Discussion Points ==&lt;br /&gt;
&lt;br /&gt;
* Should we take an average of multiple runs with different values (@point, @bbox)?&lt;br /&gt;
* Should we vary the queries&#039; result sizes? (see observations)&lt;br /&gt;
* Should we vary the shape and alignment of the query window? (see observations)&lt;br /&gt;
* Should we run the benchmark with parallelized queries?&lt;br /&gt;
&lt;br /&gt;
== Review ==&lt;br /&gt;
* The limiting factor of Query 1 is mainly the performance of the harddisk.&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=25779</id>
		<title>Diskussion:HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=25779"/>
		<updated>2010-01-22T15:05:29Z</updated>

		<summary type="html">&lt;p&gt;Dominik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Feel free to discusss &#039;HSR Texas Spatial Database Benchmark&#039; issues here! [[Benutzer:Stefan|Stefan]] 18:39, 22. Dez. 2009 (CET)&lt;br /&gt;
&lt;br /&gt;
== To do ==&lt;br /&gt;
* Standardise data and input process (circumvent or minimize floating point problem)&lt;br /&gt;
* Define the variables (@bbox and @point)&lt;br /&gt;
&lt;br /&gt;
== Observations ==&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
* MS SQL Server representatives report that geography types are 20-30% slower than geometry types.&lt;br /&gt;
* About PostGIS 1.5 there was said, that geography types are somewhat faster (see http://blog.cleverelephant.ca/)&lt;br /&gt;
* Secondary index optimization makes performance about 50% faster (from: MS SQL Server discussion) &lt;br /&gt;
* The number of points of a query window is important for a secondary filter overhead.&lt;br /&gt;
&lt;br /&gt;
Data and queries per se:&lt;br /&gt;
* These queries return quite large percent of the data overall (50%-100% for points and polygons)&lt;br /&gt;
* The Number of points for a query windows is very small. &lt;br /&gt;
* The query windows are &amp;quot;aligned bounding boxes&amp;quot; which may put in favor RTree (e.g. Postgres) or spatial grid (SQL Server) index, depending on a position of the window. If the window is aligned with the grid, performance can be much faster than when it&#039;s slightly off.&lt;br /&gt;
&lt;br /&gt;
== Discussion Points ==&lt;br /&gt;
&lt;br /&gt;
* Should we take an average of multiple runs with different values (@point, @bbox)?&lt;br /&gt;
* Should we vary the queries&#039; result sizes? (see observations)&lt;br /&gt;
* Should we vary the shape and alignment of the query window? (see observations)&lt;br /&gt;
* Should we run the benchmark with parallelized queries?&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=25778</id>
		<title>Diskussion:HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=25778"/>
		<updated>2010-01-22T14:59:34Z</updated>

		<summary type="html">&lt;p&gt;Dominik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Feel free to discusss &#039;HSR Texas Spatial Database Benchmark&#039; issues here! [[Benutzer:Stefan|Stefan]] 18:39, 22. Dez. 2009 (CET)&lt;br /&gt;
&lt;br /&gt;
== To do ==&lt;br /&gt;
* Standardise data and input process (circumvent or minimize floating point problem)&lt;br /&gt;
* Define the variables (@bbox and @point)&lt;br /&gt;
&lt;br /&gt;
== Observations ==&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
* MS SQL Server representatives report that geography types are 20-30% slower than geometry types.&lt;br /&gt;
* About PostGIS 1.5 there was said, that geography types are somewhat faster (see http://blog.cleverelephant.ca/)&lt;br /&gt;
* Secondary index optimization makes performance about 50% faster (from: MS SQL Server discussion) &lt;br /&gt;
* The number of points of a query window is important for a secondary filter overhead.&lt;br /&gt;
&lt;br /&gt;
Data and queries per se:&lt;br /&gt;
* These queries return quite large percent of the data overall (50%-100% for points and polygons)&lt;br /&gt;
* The Number of points for a query windows is very small. &lt;br /&gt;
* The query windows are &amp;quot;aligned bounding boxes&amp;quot; which may put in favor RTree (e.g. Postgres) or spatial grid (SQL Server) index, depending on a position of the window. If the window is aligned with the grid, performance can be much faster than when it&#039;s slightly off.&lt;br /&gt;
&lt;br /&gt;
== Discussion Points ==&lt;br /&gt;
&lt;br /&gt;
* Should we take an average of multiple runs with different values (@point, @bbox)?&lt;br /&gt;
* Should we vary the queries&#039; result sizes? (see observations below)&lt;br /&gt;
* Should we vary the shape and alignment of the query window? (see observations)&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=MediaWiki&amp;diff=25775</id>
		<title>MediaWiki</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=MediaWiki&amp;diff=25775"/>
		<updated>2010-01-21T10:16:08Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Manuelle Anpassungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das GISpunkt Wiki basiert auf der MediaWiki-Software. Nachfolgend u.a. Hinweise zur Konfiguration auf dem GISpunkt-Rechner (gis.hsr.ch). Ganz unten einige allgemeine Weblinks zu MediaWiki.&lt;br /&gt;
&lt;br /&gt;
Siehe auch:&lt;br /&gt;
* [[Joomla]]&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
&lt;br /&gt;
* Exportieren:&lt;br /&gt;
** Beispiel: http://gis.hsr.ch//wiki/Spezial:Exportieren/HSR&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Installation GISpunkt Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== Letzte Aktualisierung ===&lt;br /&gt;
* Update auf Version 1.15.1&lt;br /&gt;
** Extension [http://www.mediawiki.org/wiki/Extension:Newuserlog Newuserlog] ist seit 1.14.0 im Core und wurde entfernt&lt;br /&gt;
* Update auf Version 1.11&lt;br /&gt;
** Dabei ist folgender Fehler aufgetreten:&lt;br /&gt;
*** http://www.mediawiki.org/wiki/Manual:Short_URL/Page_title_--_Working_method_with_mediawiki-1.11&lt;br /&gt;
*** http://www.organicdesign.co.nz/MediaWiki_1.11_title_extraction_bug&lt;br /&gt;
&lt;br /&gt;
=== Angepasste Hauptseite (Startseite) ===&lt;br /&gt;
&lt;br /&gt;
Mit [[MediaWiki:Sidebar]] (Navigation) angepasst (als WikiSysop). Original siehe &amp;quot;Diskussion:Hauptseite&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Test: Siehe [[Hauptseite]] (= Startseite).&lt;br /&gt;
&lt;br /&gt;
=== LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Erlaubte File Upload (Hochladen) &#039;File Extensions&#039;: pdf, wav, mp3, ogg, zip.&lt;br /&gt;
* Das Verzeichnis $wgUploadDirectory und alle Subelemente müssen im Filesystem für den Webserver-User beschreibbar sein&lt;br /&gt;
&lt;br /&gt;
=== Manuelle Anpassungen ===&lt;br /&gt;
&lt;br /&gt;
* Der benutzte Skin (Monobook) wurde angepasst, damit auf Mobiltelefonen das Handheld-CSS erzwungen wird. Dazu ist die Erkennung über den User-Agent-String in MonoBook.php implementiert.&lt;br /&gt;
* Das handheld.css wurde angepasst: #siteSub { display: none; }&lt;br /&gt;
&lt;br /&gt;
=== WikiPointMap ===&lt;br /&gt;
&lt;br /&gt;
Zur Anleitung der [[WikiPointMap]], die zu den AddPageFromMap- und KML Export-Extensions passt.&lt;br /&gt;
&lt;br /&gt;
=== KML Export Extension ===&lt;br /&gt;
&lt;br /&gt;
KML Export ist eine Extension, welche KML-Dateien vom Inhalt von Artikelseiten für Google Earth generiert.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen siehe [[KML Export Extension]].&lt;br /&gt;
&lt;br /&gt;
=== AddPageFromMap Extension ===&lt;br /&gt;
&lt;br /&gt;
Um die Webapplikation zusammen mit WikiPointMap nutzen zu können, muss diese AddPageFromMap-Extension installiert werden.&lt;br /&gt;
&lt;br /&gt;
Siehe originale Startseite der [[AddPageFromMap Extension]].&lt;br /&gt;
&lt;br /&gt;
=== DataMatrix-Extensions ===&lt;br /&gt;
&lt;br /&gt;
Diese [http://www.haelfi.ch/sa1/Information_MediaWiki_Extensions DataMatrix-Extensions] sind Bestandteil der Studienarbeit [http://www.haelfi.ch/sa1 MobileTags4Wikis].&lt;br /&gt;
&lt;br /&gt;
Download: http://www.haelfi.ch/sa1/Installation_Extensions&lt;br /&gt;
&lt;br /&gt;
=== VideoFlash-Extension ===&lt;br /&gt;
&lt;br /&gt;
VideoFlash is an extension that displays videos from Youtube, GoogleVideo, Dailymotion, Sevenload, Revver and similar services based on FLV video format.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://www.mediawiki.org/wiki/Extension:VideoFlash Extension:VideoFlash]&lt;br /&gt;
&lt;br /&gt;
=== SlideShare-Extension ===&lt;br /&gt;
&lt;br /&gt;
Parser function for embedding SlideShare presentations into wiki pages.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://www.mediawiki.org/wiki/Extension:SlideShare Extension:SlideShare]&lt;br /&gt;
&lt;br /&gt;
=== OggHandler-Extension ===&lt;br /&gt;
&lt;br /&gt;
OggHandler is an extension which allows you to display Ogg audio and video files in wiki pages, using the same syntax as for image files.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://www.mediawiki.org/wiki/Extension:OggHandler Extension:OggHandler]&lt;br /&gt;
&lt;br /&gt;
=== FlashMP3-Extension ===&lt;br /&gt;
&lt;br /&gt;
FlashMP3 embeds a simple Flash-player for playback of mp3-files.&lt;br /&gt;
Minimale Änderung am Code, der ID-Parameter muss für mehrere Instanzen auf einer Seite nicht mehr angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://www.mediawiki.org/wiki/Extension:FlashMP3 Extension:FlashMP3]&lt;br /&gt;
&lt;br /&gt;
=== LanguageSelector-Extension ===&lt;br /&gt;
&lt;br /&gt;
Lässt Auswahl der UI-Sprache zu. Auswahl wird für anonyme User aufgrund der im Header mitgeschickten &amp;quot;Accept-Language&amp;quot; getroffen. Über Parameter uselang (nur Request) resp. setlang (in Cookie gespeichert) kann die Sprachauswahl auch manuell beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://www.mediawiki.org/wiki/Extension:LanguageSelector Extension:LanguageSelector]&lt;br /&gt;
&lt;br /&gt;
=== reCAPTCHA-Extension ===&lt;br /&gt;
&lt;br /&gt;
Platziert ein Captcha bei der Neuregistrierung von Benutzern. Zudem wird ein Captcha platziert, wenn eine Seite editiert wurde und dabei externe Links hinzugefügt wurden.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://www.mediawiki.org/wiki/Extension:ReCAPTCHA Extension:ReCAPTCHA]&lt;br /&gt;
&lt;br /&gt;
=== Lucene-Search ===&lt;br /&gt;
&lt;br /&gt;
Lucene-Search wird für verbesserte Volltextsuchresultate eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Siehe [http://www.mediawiki.org/wiki/Extension:Lucene-search Extension:Lucene-search] und [http://www.mediawiki.org/wiki/Extension:MWSearch Extension:MWSearch]&lt;br /&gt;
&lt;br /&gt;
Die cron-job-Konfig. startet 1x pro Stunde.&lt;br /&gt;
&lt;br /&gt;
=== MediaWikiAuthTool ===&lt;br /&gt;
&lt;br /&gt;
Service, der (externen) Applikationen eine User-Authentisierung auf der MediaWiki-Datenbank erlaubt (Remote via XML).&lt;br /&gt;
&lt;br /&gt;
Siehe [[MediaWikiAuthTool]].&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen für GIS ==&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[WikiGIS]] und die MediaWiki-Projektseite.&lt;br /&gt;
&lt;br /&gt;
Wiki-Karte und Geo-Tagging von Artikel:&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:GeoRSS - WikiMedia extension for GeoRSS. Easy interface for geotagging MediaWiki articles, and publishes a GeoRSS feed of all mapped articles in the Wiki, for mapping and syndication. By Mikel Maron.&lt;br /&gt;
* http://hexten.net/wiki/index.php/Wiki_Widgets - Hexten - Wiki Widgets are extensions for MediaWiki that provide simple ways to embed information from other sources within a wiki page. &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Google_Maps - WikiMedia extension for Google Maps &lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:KML_Export - WikiMedia extension for KML Export &lt;br /&gt;
* http://wikimap.sourceforge.net/Main_Page - WikiMap is a dynamic (&#039;web 2.0&#039;) map that allows you to easily add locations to it. These locations show up on the map as markers. When you click a marker a little infowindow pops up. This infowindow can contain text, images, video, you name it. WikiMap is based on Openlayers and WordPress. Author: Robert Buzink.&lt;br /&gt;
&lt;br /&gt;
Google Maps Extensions für MediaWiki:&lt;br /&gt;
* Listen:&lt;br /&gt;
** http://de.wikipedia.org/wiki/Benutzer:Arcy#MediaWiki_anpassen &lt;br /&gt;
** http://en.giswiki.org/wiki/MediaWiki_GIS_Extensions&lt;br /&gt;
** http://en.giswiki.org/wiki/Google_Maps_Extensions/Probleme&lt;br /&gt;
* Tutorials für diverse kleinere Erweiterungen des MediaWikis&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Infofenster-Extension&lt;br /&gt;
** http://www.giswiki.org/index.php/MediaWiki_GIS_Extensions#Marker_Extension&lt;br /&gt;
*  Google Map Extension, die es erlaubt, Geoinformationsdaten aus RSS Feeds in eine Karte einzubinden [http://meta.wikimedia.org/wiki/User:Mafs/GoogleMapExtension].&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Gis Manske&#039;s Gis-Extension auf WikiMedia]&lt;br /&gt;
** Erweiterung der Datenbank http://en.giswiki.org/wiki/GIS-Extension&lt;br /&gt;
* Eine Erweiterung für das Einbinden einer Google Map in MediaWiki http://en.giswiki.org/wiki/Google_Maps_Extensions&lt;br /&gt;
* Beispielcode für die Erstellung einer Google Map im GISWiki http://en.giswiki.org/wiki/Google_Maps_Extensions/GISWiki&lt;br /&gt;
* Tutorial und Code für das Anzeigen einer georeferenzierte Karte mit eigenen Punktkoordinaten http://en.giswiki.org/wiki/Point-Mapping_Extension&lt;br /&gt;
&lt;br /&gt;
== MediaWiki-Erweiterungen allgemein ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:Pdf_Book Pdf_Book] - PDF erzeugen aus Artikel, die in Kategorien oder Bullet Listen organisiert sind.&lt;br /&gt;
* Verbesserte Suche&lt;br /&gt;
* User Management:&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:Newuserlog&lt;br /&gt;
** http://www.mediawiki.org/wiki/Extension:New_User_Email_Notification&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Extension:ScuttleBookmarks ScuttleBookmarks] - Displays Scuttle bookmarks in a blogroll type view&lt;br /&gt;
* Wiki-Datbase: In sep. Wiki testen?&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=25762</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=25762"/>
		<updated>2010-01-19T12:35:06Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Datasets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039; (tbd.): &lt;br /&gt;
* &#039;Aligned with grid&#039;: &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039; (tbd.): &lt;br /&gt;
* &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads.&lt;br /&gt;
&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 1000 meters from a given point &#039;@point&#039;. &lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 1000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 1000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 1000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area.&lt;br /&gt;
&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All locations and Point of interest for the state of Texas. || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,744   || -103.208 33.565,-103.208 28.435,-96.891 28.435,-96.891 33.565&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,051   || -104.006 34.213,-104.006 27.787,-96.093 27.787,-96.093 34.213&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,174   || -104.904 34.942,-104.904 27.058,-95.195 27.058,-95.195 34.942&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,498   || -106.168 35.968,-106.168 26.032,-93.932 26.032,-93.932 35.968&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,282 || -102.169 32.720,-102.169 29.279,-97.930 29.279,-97.930 32.720&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,001,665 || -103.109 33.484,-103.109 28.516,-96.991 28.516,-96.991 33.484&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,498,936 || -103.518 33.816,-103.518 28.183,-96.581 28.183,-96.581 33.816&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,007,473 || -104.605 34.699,-104.605 27.301,-95.494 27.301,-95.494 34.699&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,498,941 || -106.041 35.865,-106.041 26.134,-94.058 26.134,-94.058 35.865&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,860   || -102.789 33.224,-102.789 28.775,-97.310 28.775,-97.3102 33.224&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,655   || -103.261 33.608,-103.261 28.391,-96.838 28.391,-96.8380 33.608&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,814   || -103.674 33.943,-103.674 28.057,-96.425 28.057,-96.4257 33.943&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 249,685   || -104.272 34.429,-104.272 27.571,-95.827 27.571,-95.8272 34.429&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 299,965   || -104.691 34.769,-104.691 27.230,-95.408 27.230,-95.4083 34.769&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,449   || -105.536 35.455,-105.536 26.545,-94.563 26.545,-94.5637 35.455&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=25740</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=25740"/>
		<updated>2010-01-18T12:14:23Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Datasets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039; (tbd.): &lt;br /&gt;
* &#039;Aligned with grid&#039;: &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039; (tbd.): &lt;br /&gt;
* &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads.&lt;br /&gt;
&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 1000 meters from a given point &#039;@point&#039;. &lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 1000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 1000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 1000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area.&lt;br /&gt;
&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || All locations and Point of interest for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,744   || -103.208 33.565,-103.208 28.435,-96.891 28.435,-96.891 33.565&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,051   || -104.006 34.213,-104.006 27.787,-96.093 27.787,-96.093 34.213&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,174   || -104.904 34.942,-104.904 27.058,-95.195 27.058,-95.195 34.942&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,498   || -106.168 35.968,-106.168 26.032,-93.932 26.032,-93.932 35.968&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,282 || -102.169 32.720,-102.169 29.279,-97.930 29.279,-97.930 32.720&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,001,665 || -103.109 33.484,-103.109 28.516,-96.991 28.516,-96.991 33.484&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,498,936 || -103.518 33.816,-103.518 28.183,-96.581 28.183,-96.581 33.816&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,007,473 || -104.605 34.699,-104.605 27.301,-95.494 27.301,-95.494 34.699&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,498,941 || -106.041 35.865,-106.041 26.134,-94.058 26.134,-94.058 35.865&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,860   || -102.789 33.224,-102.789 28.775,-97.310 28.775,-97.3102 33.224&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,655   || -103.261 33.608,-103.261 28.391,-96.838 28.391,-96.8380 33.608&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,814   || -103.674 33.943,-103.674 28.057,-96.425 28.057,-96.4257 33.943&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 249,685   || -104.272 34.429,-104.272 27.571,-95.827 27.571,-95.8272 34.429&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 299,965   || -104.691 34.769,-104.691 27.230,-95.408 27.230,-95.4083 34.769&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,449   || -105.536 35.455,-105.536 26.545,-94.563 26.545,-94.5637 35.455&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=25739</id>
		<title>HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=HSR_Texas_Geo_Database_Benchmark&amp;diff=25739"/>
		<updated>2010-01-18T12:10:17Z</updated>

		<summary type="html">&lt;p&gt;Dominik: /* Datasets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The HSR Texas Spatial Database Benchmark&#039;&#039;&#039; - A Proposal&lt;br /&gt;
&lt;br /&gt;
Date of first proposal: December 21, 2009. &lt;br /&gt;
Status: Call for Comments and Call for Participation.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig1.png|thumb|200px|right|Draft of the benchmark.]]&lt;br /&gt;
&lt;br /&gt;
This is a proposal for a spatial database benchmark from the University of Applied Sciences Rapperswil (HSR). A study of existing database benchmarks revealed that there exists no information publicly available which compares spatial database systems regarding their performance. Spatial &#039;database management systems&#039; (DMBS) typically form the persistence layer of a geographic information system (GIS). &lt;br /&gt;
&lt;br /&gt;
Thus the Institute for Software at the University of Applied Sciences Rapperswil (HSR) decided to propose such a benchmark. This benchmark is being called &#039;The HSR Texas Spatial Database Benchmark&#039; because it was defined from a HSR institute and because data comes from Texas USA. &lt;br /&gt;
&lt;br /&gt;
The benchmark is based on a predefined set of queries. These queries consist of simple spatial queries, defined in the OpenGIS(tm) &#039;Simple Features Interface Standard (SFS)&#039;. The queries are performed on different-sized data sets for monitoring the behavior on various loads as well as on different hardware systems. &lt;br /&gt;
&lt;br /&gt;
In the following sections the methodology, the queries are explained and the used datasets are defined. This proposal concludes with a Call for Comments about the benchmark as well as a Call for Participation to apply and test this benchmark on existing DBMS software.&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
The benchmark follows the below defined rules of engagement.&lt;br /&gt;
* Each test runs three times in a row, the results of the third run are used for the comparison: this benchmark assumes full system caches (&#039;hot&#039; benchmark).&lt;br /&gt;
* Each test takes place on the same machine.&lt;br /&gt;
* All other DBMS are shut down while the tests are running.&lt;br /&gt;
* Each DBMS has the same data which comes from real world data sets (as indicated below). &lt;br /&gt;
* The coordinate reference system used is spherical (geographical). &lt;br /&gt;
* Each test uses bounding box or point variables which are the same for the respective systems in the test. These variables are chosen at random from within the subset space.&lt;br /&gt;
&lt;br /&gt;
Any hardware used needs to be specified according to following points:&lt;br /&gt;
* System Type&lt;br /&gt;
* Model&lt;br /&gt;
* Processor&lt;br /&gt;
* RAM&lt;br /&gt;
* Hard drive&lt;br /&gt;
* Operating system&lt;br /&gt;
&lt;br /&gt;
There are two variants of the test: &amp;quot;No tuning/initial&amp;quot; and &amp;quot;Tuned&amp;quot;. &lt;br /&gt;
# The variant &amp;quot;No tuning/initial&amp;quot; is mandatory in order to make benchmarks more widely applicable. The respective default installation of one DBMS is used.&lt;br /&gt;
# The variant &amp;quot;Tuned&amp;quot; is optional and needs proper documentation of all tuned parameters and activities.&lt;br /&gt;
&lt;br /&gt;
== Queries ==&lt;br /&gt;
&lt;br /&gt;
The following queries are selected from the SQL functions defined by the SFS. The placeholder &#039;{dataset}&#039; will be substituted by the respective table names. The variable @bbox complies with randomly selected rectangular polygons in the geographical range of each data set, but which are the same for every system. The variable @point corresponds to a random point which is located in the area of the subsets. &amp;quot;geo&amp;quot; identifies the table column with geographical data. The following statements are given in pseudo SQL code.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@bbox&#039;&#039;&#039; (tbd.): &lt;br /&gt;
* &#039;Aligned with grid&#039;: &amp;lt;code&amp;gt;POLYGON ((-101.3135 32.026, -101.3135 29.974, -98.7865 29.974, -98.7865 32.026, -101.3135 32.026))&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Variable(s) &#039;&#039;&#039;@point&#039;&#039;&#039; (tbd.): &lt;br /&gt;
* &amp;lt;code&amp;gt;POINT(-101.3135 32.026)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Query 1. Loading the data === &lt;br /&gt;
Create tiered data subsets by sub-dividing with a given bounding box &#039;@bbox&#039;, creating the indices.&lt;br /&gt;
&lt;br /&gt;
  SELECT * INTO {dataset}&lt;br /&gt;
  FROM {original dataset}&lt;br /&gt;
  WHERE ST_Intersects(@bbox, geo);&lt;br /&gt;
  CREATE SPATIAL INDEX idx ON {dataset} ([geo]);&lt;br /&gt;
&lt;br /&gt;
=== Query 2. A Non-spatial Selection: Count ===&lt;br /&gt;
Count all railroads.&lt;br /&gt;
&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE l.roadflg=&#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
=== Query 3. Spatial Selection I: Intersect Point, Line and Polygons ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that intersect with a given bounding box &#039;@bbox&#039;.&lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset points} p&lt;br /&gt;
  WHERE ST_Intersects(@bbox, p.geo);&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Intersects(@bbox, l.geo);&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT Count(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Intersects(@bbox, pg.geo);&lt;br /&gt;
&lt;br /&gt;
=== Query 4. Spatial Selection II: Distance within ===&lt;br /&gt;
Count all a) points, b) lines, c) polygons that are within 1000 meters from a given point &#039;@point&#039;. &lt;br /&gt;
&lt;br /&gt;
  a)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset points} p &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 1000;&lt;br /&gt;
&lt;br /&gt;
  b)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 1000;&lt;br /&gt;
&lt;br /&gt;
  c)&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset polygons} pg &lt;br /&gt;
  WHERE ST_Distance(@point, geo) &amp;lt;= 1000;&lt;br /&gt;
&lt;br /&gt;
=== Query 5. Spatial Selection III: Intersect/Join Lines and Polygons ===&lt;br /&gt;
Count all railroads that intersect with a water area.&lt;br /&gt;
&lt;br /&gt;
  SELECT COUNT(*)&lt;br /&gt;
  FROM {dataset lines} l, areawater_full pg&lt;br /&gt;
  WHERE ST_Intersects(pg.geom, l.geom) = 1 AND l.railflg = &#039;Y&#039;;&lt;br /&gt;
&lt;br /&gt;
== Datasets ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:HSR_Spatial_Benchmark_Fig2.png|thumb|400px|right|Visualization of the Point (left) and polygon (right) data set.]]&lt;br /&gt;
&lt;br /&gt;
At the Free and Open Source Software for Geospatial Conference (FOSS4G) 2009, a &#039;Web Mapping Performance Shoot-out&#039; was performed which compared the open source GIS software products GeoServer and MapServer ([http://2009.foss4g.org/presentations/#presentation_109]). There, PostgreSQL/PostGIS and Oracle have been tested too. Several sets from the TIGER shapefiles of Texas that can be downloaded from the U.S. Census Bureau where used as data basis.&lt;br /&gt;
&lt;br /&gt;
* http://www.maptools.org/foss4g/ (user/pass: foss4g/foss4g)&lt;br /&gt;
** vector-data-tiger08-tx-merged.zip (1.1 GB) (TIGER 08, merged, for Texas)&lt;br /&gt;
** GNIS-2009.zip (7 MB) (2009 GNIS point data for Texas) &lt;br /&gt;
&lt;br /&gt;
This data is proposed to use within this benchmark containing rivers, roads, railroads, Points-of-interest and water areas. The data originate from the following shape files:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Data sets from the TIGER shapefiles&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! Shape file name   || gnis_names09  || edges_merge     || areawater_merge&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Type              || Point         || Multilinestring || Multipolygon &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| Number of records || 103,000       || Over 5 M        || 380,000 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| SRID              || EPSG:4326     || EPSG:4326       || EPSG:4326 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Source            || GNIS database || TIGER 2008      || TIGER 2008 &lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Description || All line elements (rivers and roads) from the TIGER 2008 dataset for the state of Texas. || All locations and Point of interest for the state of Texas. || The TIGER set of polygons describing water surface for the state of Texas. &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These data sets are divided by a bounding-box procedure to subsets. Using these subsets the behavior of the respective DBMS can be observed in different-sized data sets. The figure to the right shows the gnis_names09 data set (left) and the areawater_merge data set (right).&lt;br /&gt;
&lt;br /&gt;
It follows the definition of the (sub-)datasets (coordinates in [[WGS94]]):&lt;br /&gt;
&lt;br /&gt;
=== Point data gnis_names09 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile gnis_names09&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_40000           ||style=&amp;quot;text-align:right&amp;quot;|  40,744   || -103.208 33.565,-103.208 28.435,-96.891 28.435,-96.891 33.565&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_60000           ||style=&amp;quot;text-align:right&amp;quot;|  60,051   || -104.006 34.213,-104.006 27.787,-96.093 27.787,-96.093 34.213&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_80000           ||style=&amp;quot;text-align:right&amp;quot;|  80,174   || -104.904 34.942,-104.904 27.058,-95.195 27.058,-95.195 34.942&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| gnis_names_100000          ||style=&amp;quot;text-align:right&amp;quot;| 100,498   || -106.168 35.968,-106.168 26.032,-93.932 26.032,-93.932 35.968&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multilinestring data edges_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile edges_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_500000               ||style=&amp;quot;text-align:right&amp;quot;|   500,282 || -102.169 32.720,-102.169 29.279,-97.930 29.279,-97.930 32.720&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1000000              ||style=&amp;quot;text-align:right&amp;quot;| 1,001,665 || -103.109 33.484,-103.109 28.516,-96.991 28.516,-96.991 33.484&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_1500000              ||style=&amp;quot;text-align:right&amp;quot;| 1,498,936 || -103.518 33.816,-103.518 28.183,-96.581 28.183,-96.581 33.816&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2000000              ||style=&amp;quot;text-align:right&amp;quot;| 2,007,473 || -104.605 34.699,-104.605 27.301,-95.494 27.301,-95.494 34.699&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| edges_2500000              ||style=&amp;quot;text-align:right&amp;quot;| 2,498,941 || -106.041 35.865,-106.041 26.134,-94.058 26.134,-94.058 35.865&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Multipolygon data areawater_merge ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;padding-bottom:1em;&amp;quot; | &#039;&#039;&#039;Table: Shapefile areawater_merge&#039;&#039;&#039;&lt;br /&gt;
|- bgcolor=&amp;quot;#e0e0e0&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Subset || Number of records  || Bounding box&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| areawater_100000           ||style=&amp;quot;text-align:right&amp;quot;| 100,860   || -102.789 33.224,-102.789 28.775,-97.310 28.775,-97.3102 33.224&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_150000           ||style=&amp;quot;text-align:right&amp;quot;| 150,655   || -103.261 33.608,-103.261 28.391,-96.838 28.391,-96.8380 33.608&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_200000           ||style=&amp;quot;text-align:right&amp;quot;| 200,814   || -103.674 33.943,-103.674 28.057,-96.425 28.057,-96.4257 33.943&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_250000           ||style=&amp;quot;text-align:right&amp;quot;| 249,685   || -104.272 34.429,-104.272 27.571,-95.827 27.571,-95.8272 34.429&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_300000           ||style=&amp;quot;text-align:right&amp;quot;| 299,965   || -104.691 34.769,-104.691 27.230,-95.408 27.230,-95.4083 34.769&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot; &lt;br /&gt;
| areawater_350000           ||style=&amp;quot;text-align:right&amp;quot;| 350,449   || -105.536 35.455,-105.536 26.545,-94.563 26.545,-94.5637 35.455&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Call for Comments and Call for Participation ==&lt;br /&gt;
&lt;br /&gt;
The &#039;HSR Texas Spatial Database Benchmark&#039; was conducted and verified by a first time in December 2009 during a Master Seminar by the Institute for Software at HSR. Two database management systems software (DBMS), one commercially available (Microsoft SQL Server 2008 Spatial) an one under an Open Source license (PostgreSQL 8.4.1/PostGIS 1.4.0), have been chosen. The results are currently evaluated and will probably be published in 2010.&lt;br /&gt;
&lt;br /&gt;
Two actions from researchers and volunteers may complement this research:&lt;br /&gt;
* Submit comments on the &#039;HSR Texas Spatial Database Benchmark&#039; itself.&lt;br /&gt;
* Do further experiments on existing DBMS.&lt;br /&gt;
&lt;br /&gt;
We are looking forward for a fruitful discussion!&lt;br /&gt;
&lt;br /&gt;
== Feedback, Discussion and Contact ==&lt;br /&gt;
&lt;br /&gt;
Please direct any comments either to the discussion page, to the [http://lists.osgeo.org/mailman/listinfo/benchmarking OSGEOs benchmarking mailing list] - or directly to [[Benutzer:Stefan|Prof. S. Keller from Institute for Software at HSR]].&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Benchmarking_2009#Data GeoServer vs. MapServer Benchmark 2009]&lt;br /&gt;
* List of benchmarks and performance tests: http://delicious.com/sfkeller/database+benchmark&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=25679</id>
		<title>Diskussion:HSR Texas Geo Database Benchmark</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:HSR_Texas_Geo_Database_Benchmark&amp;diff=25679"/>
		<updated>2010-01-15T12:34:00Z</updated>

		<summary type="html">&lt;p&gt;Dominik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Feel free to discusss &#039;HSR Texas Spatial Database Benchmark&#039; issues here! [[Benutzer:Stefan|Stefan]] 18:39, 22. Dez. 2009 (CET)&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
* standardise data and input process (circumvent or minimize floating point problem)&lt;br /&gt;
* define the variables (@bbox and @point)&lt;br /&gt;
** should we take an average of multiple runs with different values?&lt;br /&gt;
* should we vary the queries&#039; result sizes? (see observations below)&lt;br /&gt;
* should we vary the shape and alignment of the query window? (see observations below)&lt;br /&gt;
&lt;br /&gt;
== Observations ==&lt;br /&gt;
&lt;br /&gt;
General:&lt;br /&gt;
* MS SQL Server representatives report that geography types are 20-30% slower than geometry types.&lt;br /&gt;
* About PostGIS 1.5 there was said, that geography types are somewhat faster (see http://blog.cleverelephant.ca/)&lt;br /&gt;
* Secondary index optimization makes performance about 50% faster (from: MS SQL Server discussion) &lt;br /&gt;
* The number of points of a query window is important for a secondary filter overhead.&lt;br /&gt;
&lt;br /&gt;
Data and queries per se:&lt;br /&gt;
* These queries return quite large percent of the data overall (50%-100% for points and polygons)&lt;br /&gt;
* The Number of points for a query windows is very small. &lt;br /&gt;
* The query windows are &amp;quot;aligned bounding boxes&amp;quot; which may put in favor RTree (e.g. Postgres) or spatial grid (SQL Server) index, depending on a position of the window. If the window is aligned with the grid, performance can be much faster than when it&#039;s slightly off.&lt;br /&gt;
&lt;br /&gt;
== Discussion Points ==&lt;br /&gt;
&lt;br /&gt;
Typically the bbox variable is &amp;quot;grid aligned&amp;quot; - What&#039;s the impact? Is this typical?&lt;br /&gt;
&lt;br /&gt;
tdb.&lt;/div&gt;</summary>
		<author><name>Dominik</name></author>
	</entry>
</feed>