Index: trunk/import/norgis_alkis_pp/postcreate.d/9_optimize.sql
===================================================================
--- trunk/import/norgis_alkis_pp/postcreate.d/9_optimize.sql	(revision 409)
+++ trunk/import/norgis_alkis_pp/postcreate.d/9_optimize.sql	(revision 412)
@@ -1,62 +1,23 @@
--- OSGeo4W64\apps\alkis-import-dev\postprocessing.d\9_optimize.sql
+-- OSGeo4W64\apps\alkis-import\postcreate.d\9_optimize.sql
 -- Optimieren von ALKIS-Datenbanken aus PostNAS.
 -- Optionaler Schritt nach dem Laden oder Aktualisieren.
--- Ziel ist die Reduzierung des Speicherplatzes und die Verbesserung der Verarbeitungs-Geschwindigkeit.
+-- Ziel ist die Verbesserung der Verarbeitungs-Geschwindigkeit.
 
--- 2018-10-29 krz Mi-Ra/Li: Idee "Clustering" aus der PostNAS-Sitzung.
+-- 2018-11-09 krz Mi-Ra/Li: Full-Schema
 
-  SELECT 'Optimierung der Datenbank lÃ€uft ...' AS info;
-
--- Anzeige der GrÃ¶Ãe der Datenbank vor der Optimierung.
--- https://www.postgresql.org/docs/current/static/functions-admin.html
-  SELECT pg_database_size(:'DBNAME') AS db_groesse_vorher;
-
-
--- Wenn keine historischen Objekte verwendet werden sollen, dann kÃ¶nnen alle Objekte gelÃ¶scht werden, 
---  die einen Eintrag in der Spalte "endet" haben (endet IS NULL).
--- Sollte auskommentiert werden, wenn im NBA-Verfahren bewusst die Abgabeart "3100 fallbezogen (mit Historie)" verwendet wird 
---  und die historischen Objekte von der Anwendung gefiltert angezeigt werden kÃ¶nnen.
-  SELECT alkis_delete_all_endet();
-
-
--- Der Konverter ogr2ogr/NAS liest in einem zweiten Durchlauf durch die NAS-Datei die 
---  DatensÃ€tze mit den Operationen DELETE, REPLACE und UPDATE.
--- Diese SÃ€tze werden in die Tabelle "delete" eingefÃŒgt, wo sie ÃŒber einen Datenbank-Trigger die FortfÃŒhrung der Objekt-Tabellen auslÃ¶sen.
--- Danach kÃ¶nnen die SÃ€tze der delete-Tabelle wieder gelÃ¶scht werden.
-  TRUNCATE delete;
-
-
--- Die Tabelle "alkis_beziehungen" hat in einer frÃŒhen Version des Konverters die Beziehungen zwischen ALKIS-Objekten abgebildet.
--- Sie wurde ersetzt durch direkte Relationn zwischen den Objekt-Tabellen.
--- Die Tabelle "alkis_beziehungen" sollte von auswertenden Programmen nicht mehr verwendet werden.
--- Falls sie vom Konverter (Importer) noch gefÃŒllt wird, kann der Inhalt gelÃ¶scht werden.
--- Der Befehl TRUNCATE ist schneller, kann aber nur vom EigentÃŒmer verwendet werden. Ggf. ersetzen durch "DELETE". 
-  TRUNCATE alkis_beziehungen;
---DELETE FROM alkis_beziehungen;
-
-
--- Wie lange soll das Protokoll gespeichert bleiben?
--- Selektiv "alte" EintrÃ€ge entfernen.
---  ts timestamp without time zone DEFAULT now(),
-  SELECT 'Importlog vom ' || date(min(ts)) || ' bis ' || date(max(ts)) AS vorher FROM alkis_importlog;
-  DELETE FROM alkis_importlog WHERE (current_timestamp - ts) > interval '62 days';  -- ca. 2 Monate
-  SELECT 'Importlog vom ' || date(min(ts)) || ' bis ' || date(max(ts)) AS nachher FROM alkis_importlog;
-
-
--- C l u s t e r n  einiger Tabellen wie im Schritt postcreate.d definiert.
--- --------------------------------------------------------------------------
+-- C l u s t e r n  der Darstellungstabellen mit dem geometrischen Index
+-- -------------------------------------------------------------------------
 -- https://www.postgresql.org/docs/9.4/static/sql-cluster.html
 -- CLUSTER [VERBOSE] table_name [ USING index_name ]
 
-  CLUSTER ; 
+  CLUSTER po_labels    USING po_labels_point_idx;  -- hat 2 Geometrie-Felder!
+  CLUSTER po_lines     USING po_lines_line_idx;
+  CLUSTER po_points    USING po_points_point_idx;
+  CLUSTER po_polygons  USING po_polygons_polygons_idx;
 
-
--- Reorganisation des Speichers.
--- Dauert je nach DB-GrÃ¶Ãe einen Weile. Die Datenbank is wÃ€hrend dieser Zeit nur eingeschrÃ€nkt benutzbar.
-  VACUUM full;
-
-
--- GrÃ¶Ãe der Datenbank nach der Optimierung anzeigen.
-  SELECT pg_database_size(:'DBNAME') AS db_groesse_nachher;
+-- Die Datenbank ist zum Zeitpunkt der Verarbeitung (postcreate) dieses Skriptes noch nicht gefÃŒllt,
+-- daher erfolgt hier noch keine wirkliche Sortierung der DatensÃ€tze.
+-- Die gewÃŒnschte Clusterung wird aber gespeichert. Nach der Aktualisierung der Daten (Schritt "postprocessing") 
+-- kann der SQL-Befehl "CLUSTER;" ohne weitere Parameter ausgefÃŒhrt werden. Es wird dann alles neu geclustert, so wie hier definiert.
 
 -- ENDE --
