2 Replies Latest reply on Mar 19, 2019 1:47 PM by yenier

    SPARQL CONSTRUCT query throws a PGA memory error




      I created an RDF model (called 'mondial_schema') with the triples of MONDIAL database (https://www.dbis.informatik.uni-goettingen.de/Mondial/ ).


      I want to include into the created model the schema triples of the RDF graph.


      • For example:


      To include the triples about the schema classes, I'm running the following construct query:


      SELECT subj$rdfterm, pred$rdfterm, obj$rdfterm
           ?class rdf:type rdfs:Class .
           ?class rdfs:label ?label
               select distinct ?class 
                  ?s rdf:type ?class .
            bind(replace(replace(replace(str(?class),  ".*(#|/)", ""), "([^_])([A-Z])","$1_$2"), "_"," ") as ?label)
      SEM_Models('mondial_schema'),null,null, null));


      -- By the way, there are 27 classes --


      The query throws the following error:


      ORA-04036: PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT

      ORA-06512: at "MDSYS.RDF_MATCH_IMPL_T", line 888

      ORA-06512: at line 1

      04036. 00000 -  "PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT"

      *Cause:    Private memory across the instance exceeded the limit specified

                 in the PGA_AGGREGATE_LIMIT initialization parameter.  The largest

                 sessions using Program Global Area (PGA) memory were interrupted

                 to get under the limit.

      *Action:   Increase the PGA_AGGREGATE_LIMIT initialization parameter or reduce

                 memory usage.


      The features of the Oracle server are:

      • Oracle Database 12c Enterprise Edition Release - 64bit Production
      • pga_aggregate_limit = 4G  
      • pga_aggregate_target = 772M


      Why this error and how to solve it?


      Thanks in advance,