Changeset 412 for trunk/import
- Timestamp:
- 11/09/18 14:17:35 (5 years ago)
- Location:
- trunk/import/norgis_alkis_pp
- Files:
-
- 2 added
- 2 deleted
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/import/norgis_alkis_pp/postcreate.d/9_optimize.sql
r409 r412 1 -- OSGeo4W64\apps\alkis-import -dev\postprocessing.d\9_optimize.sql1 -- OSGeo4W64\apps\alkis-import\postcreate.d\9_optimize.sql 2 2 -- Optimieren von ALKIS-Datenbanken aus PostNAS. 3 3 -- Optionaler Schritt nach dem Laden oder Aktualisieren. 4 -- Ziel ist die Reduzierung des Speicherplatzes und dieVerbesserung der Verarbeitungs-Geschwindigkeit.4 -- Ziel ist die Verbesserung der Verarbeitungs-Geschwindigkeit. 5 5 6 -- 2018-1 0-29 krz Mi-Ra/Li: Idee "Clustering" aus der PostNAS-Sitzung.6 -- 2018-11-09 krz Mi-Ra/Li: Full-Schema 7 7 8 SELECT 'Optimierung der Datenbank lÀuft ...' AS info; 9 10 -- Anzeige der GröÃe der Datenbank vor der Optimierung. 11 -- https://www.postgresql.org/docs/current/static/functions-admin.html 12 SELECT pg_database_size(:'DBNAME') AS db_groesse_vorher; 13 14 15 -- Wenn keine historischen Objekte verwendet werden sollen, dann können alle Objekte gelöscht werden, 16 -- die einen Eintrag in der Spalte "endet" haben (endet IS NULL). 17 -- Sollte auskommentiert werden, wenn im NBA-Verfahren bewusst die Abgabeart "3100 fallbezogen (mit Historie)" verwendet wird 18 -- und die historischen Objekte von der Anwendung gefiltert angezeigt werden können. 19 SELECT alkis_delete_all_endet(); 20 21 22 -- Der Konverter ogr2ogr/NAS liest in einem zweiten Durchlauf durch die NAS-Datei die 23 -- DatensÀtze mit den Operationen DELETE, REPLACE und UPDATE. 24 -- Diese SÀtze werden in die Tabelle "delete" eingefÃŒgt, wo sie ÃŒber einen Datenbank-Trigger die FortfÃŒhrung der Objekt-Tabellen auslösen. 25 -- Danach können die SÀtze der delete-Tabelle wieder gelöscht werden. 26 TRUNCATE delete; 27 28 29 -- Die Tabelle "alkis_beziehungen" hat in einer frÃŒhen Version des Konverters die Beziehungen zwischen ALKIS-Objekten abgebildet. 30 -- Sie wurde ersetzt durch direkte Relationn zwischen den Objekt-Tabellen. 31 -- Die Tabelle "alkis_beziehungen" sollte von auswertenden Programmen nicht mehr verwendet werden. 32 -- Falls sie vom Konverter (Importer) noch gefÃŒllt wird, kann der Inhalt gelöscht werden. 33 -- Der Befehl TRUNCATE ist schneller, kann aber nur vom EigentÃŒmer verwendet werden. Ggf. ersetzen durch "DELETE". 34 TRUNCATE alkis_beziehungen; 35 --DELETE FROM alkis_beziehungen; 36 37 38 -- Wie lange soll das Protokoll gespeichert bleiben? 39 -- Selektiv "alte" EintrÀge entfernen. 40 -- ts timestamp without time zone DEFAULT now(), 41 SELECT 'Importlog vom ' || date(min(ts)) || ' bis ' || date(max(ts)) AS vorher FROM alkis_importlog; 42 DELETE FROM alkis_importlog WHERE (current_timestamp - ts) > interval '62 days'; -- ca. 2 Monate 43 SELECT 'Importlog vom ' || date(min(ts)) || ' bis ' || date(max(ts)) AS nachher FROM alkis_importlog; 44 45 46 -- C l u s t e r n einiger Tabellen wie im Schritt postcreate.d definiert. 47 -- -------------------------------------------------------------------------- 8 -- C l u s t e r n der Darstellungstabellen mit dem geometrischen Index 9 -- ------------------------------------------------------------------------- 48 10 -- https://www.postgresql.org/docs/9.4/static/sql-cluster.html 49 11 -- CLUSTER [VERBOSE] table_name [ USING index_name ] 50 12 51 CLUSTER ; 13 CLUSTER po_labels USING po_labels_point_idx; -- hat 2 Geometrie-Felder! 14 CLUSTER po_lines USING po_lines_line_idx; 15 CLUSTER po_points USING po_points_point_idx; 16 CLUSTER po_polygons USING po_polygons_polygons_idx; 52 17 53 54 -- Reorganisation des Speichers. 55 -- Dauert je nach DB-GröÃe einen Weile. Die Datenbank is wÀhrend dieser Zeit nur eingeschrÀnkt benutzbar. 56 VACUUM full; 57 58 59 -- GröÃe der Datenbank nach der Optimierung anzeigen. 60 SELECT pg_database_size(:'DBNAME') AS db_groesse_nachher; 18 -- Die Datenbank ist zum Zeitpunkt der Verarbeitung (postcreate) dieses Skriptes noch nicht gefÃŒllt, 19 -- daher erfolgt hier noch keine wirkliche Sortierung der DatensÀtze. 20 -- Die gewÃŒnschte Clusterung wird aber gespeichert. Nach der Aktualisierung der Daten (Schritt "postprocessing") 21 -- kann der SQL-Befehl "CLUSTER;" ohne weitere Parameter ausgefÃŒhrt werden. Es wird dann alles neu geclustert, so wie hier definiert. 61 22 62 23 -- ENDE -- -
trunk/import/norgis_alkis_pp/postprocessing.d/9_optimize.sql
r409 r412 10 10 -- Anzeige der GröÃe der Datenbank vor der Optimierung. 11 11 -- https://www.postgresql.org/docs/current/static/functions-admin.html 12 -- ++ Formatierung in besser lesbarem Zahlenformat mit . nach je 3 Stellen.13 12 SELECT pg_database_size(:'DBNAME') AS db_groesse_vorher; 14 13 … … 23 22 -- Der Konverter ogr2ogr/NAS liest in einem zweiten Durchlauf durch die NAS-Datei die 24 23 -- DatensÀtze mit den Operationen DELETE, REPLACE und UPDATE. 25 -- Diese SÀtze werden in die Tabelle "delete" eingefÃŒgt, wo sie ÃŒber einen Datenbank-Trigger die FortfÃŒhrung der Ob ejkt-Tabellen auslösen.24 -- Diese SÀtze werden in die Tabelle "delete" eingefÃŒgt, wo sie ÃŒber einen Datenbank-Trigger die FortfÃŒhrung der Objekt-Tabellen auslösen. 26 25 -- Danach können die SÀtze der delete-Tabelle wieder gelöscht werden. 27 26 TRUNCATE delete; … … 38 37 39 38 -- Wie lange soll das Protokoll gespeichert bleiben? 40 -- Ggf. seletiv nur "alte" EintrÀge entfernen: WHERE ... ? 41 --TRUNCATE alkis_importlog; 39 -- Selektiv "alte" EintrÀge entfernen. 42 40 -- ts timestamp without time zone DEFAULT now(), 43 41 SELECT 'Importlog vom ' || date(min(ts)) || ' bis ' || date(max(ts)) AS vorher FROM alkis_importlog; … … 46 44 47 45 48 -- C l u s t e r n einiger Tabellen wie im Schritt postcreate definiert.46 -- C l u s t e r n einiger Tabellen wie im Schritt postcreate.d definiert. 49 47 -- -------------------------------------------------------------------------- 50 48 -- https://www.postgresql.org/docs/9.4/static/sql-cluster.html
Note: See TracChangeset
for help on using the changeset viewer.