Changeset 412 for trunk/import


Ignore:
Timestamp:
11/09/18 14:17:35 (5 years ago)
Author:
frank.jaeger
Message:

Anpassung der ALKIS-Auskunft (PHP) an die Full-Schema-Version des ALKIS-Importers 3.0

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.sql 
     1-- OSGeo4W64\apps\alkis-import\postcreate.d\9_optimize.sql 
    22-- Optimieren von ALKIS-Datenbanken aus PostNAS. 
    33-- Optionaler Schritt nach dem Laden oder Aktualisieren. 
    4 -- Ziel ist die Reduzierung des Speicherplatzes und die Verbesserung der Verarbeitungs-Geschwindigkeit. 
     4-- Ziel ist die Verbesserung der Verarbeitungs-Geschwindigkeit. 
    55 
    6 -- 2018-10-29 krz Mi-Ra/Li: Idee "Clustering" aus der PostNAS-Sitzung. 
     6-- 2018-11-09 krz Mi-Ra/Li: Full-Schema 
    77 
    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-- ------------------------------------------------------------------------- 
    4810-- https://www.postgresql.org/docs/9.4/static/sql-cluster.html 
    4911-- CLUSTER [VERBOSE] table_name [ USING index_name ] 
    5012 
    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; 
    5217 
    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. 
    6122 
    6223-- ENDE -- 
  • trunk/import/norgis_alkis_pp/postprocessing.d/9_optimize.sql

    r409 r412  
    1010-- Anzeige der Größe der Datenbank vor der Optimierung. 
    1111-- https://www.postgresql.org/docs/current/static/functions-admin.html 
    12 -- ++ Formatierung in besser lesbarem Zahlenformat mit . nach je 3 Stellen. 
    1312  SELECT pg_database_size(:'DBNAME') AS db_groesse_vorher; 
    1413 
     
    2322-- Der Konverter ogr2ogr/NAS liest in einem zweiten Durchlauf durch die NAS-Datei die  
    2423--  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 Obejkt-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. 
    2625-- Danach können die SÀtze der delete-Tabelle wieder gelöscht werden. 
    2726  TRUNCATE delete; 
     
    3837 
    3938-- 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. 
    4240--  ts timestamp without time zone DEFAULT now(), 
    4341  SELECT 'Importlog vom ' || date(min(ts)) || ' bis ' || date(max(ts)) AS vorher FROM alkis_importlog; 
     
    4644 
    4745 
    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. 
    4947-- -------------------------------------------------------------------------- 
    5048-- https://www.postgresql.org/docs/9.4/static/sql-cluster.html 
Note: See TracChangeset for help on using the changeset viewer.