On 2/8/11 6:18 PM, Luka wrote:
Hi Hugh,
the thing is I "solved" this problem by adding LIMIT in my query and
putting it to a a reasonable value (in my case 100 is enough)
and now the query results are being returned reasonably fast.
Maybe this can be a clue to you...
Thank you anyway for the sugggestion. I'll try enabling tracing and see
what I get...
A client application communicates with Virtuoso via channels such as
ODBC (when using SPASQL), JDBC (when using SPASQL), ADO.NET (when using
SPASQL), HTTP (when using SPARQL endpoint), Virtuoso Server Pages (which
are actually SQL Stored Procedures) etc..
HTTP is the slowest channel.
Virtuoso Server Pages (VSP) is the fastest channel of all since there is
no IPC and everything happens inside the DBMS.
I hope this makes matters clearer :-)
Kingsley
Thanks, Luka
On 8.2.2011. 17:13, Hugh Williams wrote:
Hi Luka,
A fairer comparison would be between the the query run from PHP via
ODBC and the same query run using the Virtuoso isql command line tool
which both use the same SQL interface to Virtuoso, rather then the
sparql endpoint over HTTP.
Can you also enable ODBC tracing and provide an ODBC trace such that
we can see if PHP may be enabling an cursoring or other which may
result in more resource consumption on the server when running the query.
Best Regards
Hugh Williams
Professional Services
OpenLink Software
Web: http://www.openlinksw.com
Support: http://support.openlinksw.com
Forums: http://boards.openlinksw.com/support
Twitter: http://twitter.com/OpenLink
On 6 Feb 2011, at 11:06, Luka wrote:
Hi everyone,
I am using php on Apache and querying Virtuoso RDF graph using ODBC.
Everyithing on my localhost...
I have two questions today :p
A)
Yesterday I got an Virtuoso (opensource) error saying:
/
odbc_exec() [function.odbc-exec]: SQL error: [OpenLink][Virtuoso
ODBC Driver][Virtuoso Server]VD032: remote prepare: SQ200: The
memory pool size 400195584 reached the limit 400000000 bytes, try to
increase the MaxMemPoolSize ini setting/
and by putting MaxMemPoolSize to a bigger value I was again getting
the results for my queries from Virtuoso graph.
The problem is that now my queries are returned in 10-15 seconds?!
When I write a simple query such as:
SELECT *
WHERE
{
?ab rdf:type gr:Offering .
}
I don't wait more than a second but for the following one I wait
those 10-15 sec:
/SELECT * FROM <http://localhost:8890/advisor>
WHERE
{
?ab rdf:type gr:Offering .
?ab gr:includesObject ?tqn .
?ab gr:hasPriceSpecification ?hps.
?hps gr:hasCurrencyValue ?hcv.
?tqn rdf:type gr:TypeAndQuantityNode.
?tqn gr:typeOfGood ?UniqueID.
?UniqueID sa:hasCalories ?qvf.
?UniqueID sa:hasImage ?image.
?UniqueID sa:hasDescription ?description.
?qvf gr:hasValueFloat ?calories.
FILTER(?UniqueID =
<http://www.shoppingadivsor.com/ontologies/sa#idendtifier10>)
}/
When I run this query directly in conductor SPARQL form I receive
result in milliseconds so I guess the problem has to do
something with ODBC and not Virtuoso querying engine performance.
If you have any suggestions I would appreciate that...
B)
Another question is regarding a SPAQRL query.
My RDF graph represents a model of a products store. Store has
products of /type:Milk, type:Cereals/ etc.
<http://www.shoppingadivsor.com/ontologies/sa#Milk_5>
a sa:Milk;
sa:hasImage "milk_5.jpg";
sa:hasDescription "This is authentic boob milk :D ";
sa:hasCalories
<http://localhost/ontologies/sa#QuantitativeValueFloat_5>.
<http://www.shoppingadivsor.com/ontologies/sa#Cereals_5>
a sa:Milk;
sa:hasImage "milk_5.jpg";
sa:hasDescription "This is authentic boob milk :D ";
sa:hasCalories
<http://localhost/ontologies/sa#QuantitativeValueFloat_5>.
sa:*someOtherProperty*<...>.
sa:*someOtherProperty*<...>.
Is there a way to get all the properties of a specific node by using
the same SPARQL for both product types?
I mean how can I make a query that will return all the values of
every particular predicate ?
Meaning, In my application I want to have one SPARQL query that will
be as general as possible so that I can use it on
any product stored in RDF store and get all the values for
predicates of that node?
Uh, I hope I didn't complicate things tooooo much :)
Best regards,
Luka
------------------------------------------------------------------------------
The modern datacenter depends on network connectivity to access
resources
and provide services. The best practices for maximizing a physical
server's
connectivity to a physical network are well understood - see how these
rules translate into the virtual world?
http://p.sf.net/sfu/oracle-sfdevnlfb_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users
------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users
--
Regards,
Kingsley Idehen
President& CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen