Ergebnis 1 bis 3 von 3

Thema: Fehlermeldung bei contains abfrage

  1. #1
    alex1982 ist offline Neuer Benutzer
    Registriert seit
    03.08.2009
    Beiträge
    20

    Standard Fehlermeldung bei contains abfrage

    Hallo

    ich bin neu bei postgres und versuche grade einen constraint abfrage durch zu führen. ich verwende postgresql 8.3.7.1 und postgis 1.3.6.1. Ich möchte 2 datensätze mit punkten vergleichen. dabei habe ich zuerst die daten von epsg:4326 in epsg:900913 transformiert um eine buferung in metern durch führen zu können. danach habe ich die relevanten punkte in views gepackt und einen der datensätze in einem view mit dem buffer versehen.
    als letzten schritt wollte ich nun sehen wieviele punkte von dem einen datensatz in den buffern vom anderen datensazu liegen mit dem sql
    SELECT gr.feattyp, b.id
    FROM buffer_20 AS gr, poiingermany AS b
    WHERE Contains ( gr.setsrid, b.geom_900913 ) = TRUE;

    leider bekomme ich dabei die fehlermeldung: St9bad_alloc GEOS buffer() threw an error!
    Damit bin ich dann mit meinem latein am ende.

    PS: ich habe die
    Postgres config Dateieingestellt auf


    § shared_buffers = 512 mb
    § work_mem = 16MB
    § maintenance_work_mem = 256MB
    § effective_cache_size = 1280MB
    im vorraus vielen dank für hilfe...

    Alex

  2. #2
    Gisman ist offline Erfahrener Benutzer
    Registriert seit
    20.01.2006
    Ort
    Pfalz
    Beiträge
    794

    Standard

    Hast du die notwendigen Einträge für 900913 in spatial_ref_sys und ggf. der epsg-Datei von proj vorgenommen?

    Gruß Uwe
    Have a lot of fun!

  3. #3
    alex1982 ist offline Neuer Benutzer
    Registriert seit
    03.08.2009
    Beiträge
    20

    Standard

    Ja ich habe den epsg code in die spatial_ref_sys eingetragen.
    Zusätzlich habe ich weitere Test durchgeführt. Habe fest gestellt, dass bei einem kleinen Datensatz alles funktioniert. Somit ist wohl die Größe des Datensatzes das Hauptproblem (258000 Polygone und 105000 Punkte). Ich gehe davon aus, dass es Probleme gibt mit dem Arbeitsspeicher. Deswegen habe ich versucht einen cursor einzubauen. Leider kenne ich mich damit nicht aus. Kann mir jemand dabei helfen? Mein bisheriges sql sieht so aus:
    declare my_cursor cursor for select * from buffer_50;
    FETCH FORWARD 1000 FROM my_cursor;
    declare my_cursor2 cursor for select *from osm_poi;
    FETCH FORWARD 1000 FROM my_cursor2;
    create table osm_in_50 as SELECT gr.gid, gr.name, gr.feattyp, b.id
    FROM buffer_50 AS gr, osm_poi AS b
    WHERE Contains ( gr.setsrid, b.geom_900913 ) = TRUE;
    close my_cursor2;
    close my_cursor;
    Aber das scheint auch noch nicht richtig zu funktionieren bei dem Großen Datensatz...

Ähnliche Themen

  1. Fehlermeldung bei DELETE FROM...
    Von anna_sql im Forum Trigger und Funktionen
    Antworten: 9
    Letzter Beitrag: 22.07.2010, 20:33
  2. fehlermeldung unter win 7 rc
    Von derneue87 im Forum Installation von PostgreSQL
    Antworten: 18
    Letzter Beitrag: 12.05.2009, 20:45
  3. Foreign Key Fehlermeldung
    Von g06lepe im Forum SQL
    Antworten: 6
    Letzter Beitrag: 03.03.2009, 16:26
  4. Problem Fehlermeldung
    Von faguelce im Forum Konfiguration
    Antworten: 2
    Letzter Beitrag: 26.02.2009, 15:30
  5. Fehlermeldung bei Installation
    Von Romo im Forum Installation von PostgreSQL
    Antworten: 4
    Letzter Beitrag: 24.07.2008, 11:50

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum