Hi Mark, You indicate having set this up AWS EC2 instance, which I presume is a Virtuoso one (http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtuosoEC2AMI), from another hosted instance. Is this other hosted setup a Virtuoso EC2 AMI instance also or some other hosted server you set Virtuoso up on ? How does the configuration of the two systems compare in terms of hardware, CPUs and memory in particular ?
When setting up the Virtuoso EC2 AMI instance did you follow all the steps for all the steps for including getting all the Virtuoso updates ? Can you check the "virtuoso.log" to ensure the server is successfully started, in particular that it is pickup up the license such that sufficient server threads are available for use. 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 22 Nov 2010, at 02:00, Mark James wrote: > Hi All, > I've moved a demo application to AWS Ec2 from another hosted setup. Since > doing so I've found that a large portion of my sparql queries have gone from > returning in 0.5 seconds to 7-8 seconds. The datasets themselves are quite > small ~ 120k triples total in quad store. > > An example of one of the queries and explain plan is below. > > PREFIX INT: <http://localhost:8890/schemas/OE/> > PREFIX HR: <http://localhost:8890/schemas/HR/> > SELECT (bif:concat((bif:subseq(str(?order_date), 0, 4))," ","Q", > str(bif:quarter(?order_date)))) as ?x_axis, > (sum(?cost_price*xsd:decimal(str(?quantity)))/ > sum(?list_price*xsd:decimal(str(?quantity)))*100) as ?cost, > (sum(?unit_price*xsd:decimal(str(?quantity)) - > ?cost_price*xsd:decimal(str(?quantity))) / > sum(?list_price*xsd:decimal(str(?quantity)))*100) as ?profit, > (sum(?unit_price*xsd:decimal(str(?quantity))*?commission_pct) / > sum(?list_price*xsd:decimal(str(?quantity)))*100)as ?commission, > (sum(?list_price*xsd:decimal(str(?quantity)) - > (?unit_price*xsd:decimal(str(?quantity))))/ > sum(?list_price*xsd:decimal(str(?quantity)))*100) as ?discount > FROM <http://demo.clearbluewater.com.au/wsf/datasets/8/> > FROM <http://demo.clearbluewater.com.au/wsf/datasets/9/> > WHERE > { ?order_uri a INT:ORDERS . > ?order_uri INT:order_date ?order_date . > ?order_uri INT:orders_has_sales_rep ?sales_rep_uri . > ?sales_rep_uri INT:sales_rep_id ?sales_rep_id . > ?employee_uri a HR:EMPLOYEES . > ?employee_uri HR:employee_id ?employee_id . > ?employee_uri HR:commission_pct ?commission_pct . > filter (?employee_id = ?sales_rep_id) > ?order_uri INT:order_of_order_items ?order_items_uri . > ?order_items_uri INT:quantity ?quantity . > ?order_items_uri INT:unit_price ?unit_price . > ?order_items_uri INT:order_items_has_product_information ?product_uri . > ?product_uri INT:cost_price ?cost_price . > ?product_uri INT:list_price ?list_price . > } > group by (bif:concat((bif:subseq(str(?order_date), 0, 4))," ","Q", > str(bif:quarter(?order_date)))) > order by 1 > > explain plan - > { > > Precode: > 0: $24 "schemas/HR/EMPLOYEES" := Call __i2idn (<constant > (http://localhost:8890/schemas/HR/EMPLOYEES)>) > 5: $25 "schemas/HR/commission_pct" := Call __i2idn (<constant > (http://localhost:8890/schemas/HR/commission_pct)>) > 10: $26 "schemas/HR/employee_id" := Call __i2idn (<constant > (http://localhost:8890/schemas/HR/employee_id)>) > 15: $27 "schemas/OE/sales_rep_id" := Call __i2idn (<constant > (http://localhost:8890/schemas/OE/sales_rep_id)>) > 20: $28 "schemas/OE/orders_has_sales_rep" := Call __i2idn (<constant > (http://localhost:8890/schemas/OE/orders_has_sales_rep)>) > 25: $29 "schemas/OE/ORDERS" := Call __i2idn (<constant > (http://localhost:8890/schemas/OE/ORDERS)>) > 30: $30 "schemas/OE/order_of_order_items" := Call __i2idn (<constant > (http://localhost:8890/schemas/OE/order_of_order_items)>) > 35: $31 "schemas/OE/order_date" := Call __i2idn (<constant > (http://localhost:8890/schemas/OE/order_date)>) > 40: $32 "schemas/OE/order_items_has_product_information" := Call __i2idn > (<constant > (http://localhost:8890/schemas/OE/order_items_has_product_information)>) > 45: $33 "schemas/OE/unit_price" := Call __i2idn (<constant > (http://localhost:8890/schemas/OE/unit_price)>) > 50: $34 "schemas/OE/quantity" := Call __i2idn (<constant > (http://localhost:8890/schemas/OE/quantity)>) > 55: $35 "schemas/OE/list_price" := Call __i2idn (<constant > (http://localhost:8890/schemas/OE/list_price)>) > 60: $36 "schemas/OE/cost_price" := Call __i2idn (<constant > (http://localhost:8890/schemas/OE/cost_price)>) > 65: BReturn 0 > Subquery 37 > { > Fork 181 > { > Fork 154 > { > END Node > > After test: > 0: if (<constant (0)> 1(=) <constant (1)>) then 5 else 4 unkn 5 > 4: BReturn 1 > 5: BReturn 0 > in iterates $45 "in_iter" > over (<constant (#i1100006)>, <constant (#i1083254)>) > from DB.DBA.RDF_QUAD by RDF_QUAD_POGS 0.78 rows > Key RDF_QUAD_POGS ASC ($49 "s-7-1-t4.S") > <col=551 P = <constant (#i1)>> , <col=552 O = $24 "schemas/HR/EMPLOYEES"> , > <col=549 G = $45 "in_iter"> > 0 > Local Test > 0: if (<constant (0)> 1(=) <constant (1)>) then 5 else 4 unkn 5 > 4: BReturn 1 > 5: BReturn 0 > > from DB.DBA.RDF_QUAD by RDF_QUAD_POGS 0.43 rows > Key RDF_QUAD_POGS ASC ($55 "s-7-1-t6.S", $54 "s-7-1-t6.O", $53 "s-7-1-t6.G") > inlined <col=551 P = $25 "schemas/HR/commission_pct"> > row specs: <col=550 S = $49 "s-7-1-t4.S"> > Local Test > 0: $58 "callret" := Call one_of_these ($53 "s-7-1-t6.G", <constant > (#i1100006)>, <constant (#i1083254)>) > 5: if (<constant (0)> 2(<) $58 "callret") then 9 else 10 unkn 10 > 9: BReturn 1 > 10: BReturn 0 > > from DB.DBA.RDF_QUAD by RDF_QUAD_POGS 0.43 rows > Key RDF_QUAD_POGS ASC ($61 "s-7-1-t5.O", $60 "s-7-1-t5.G") > inlined <col=551 P = $26 "schemas/HR/employee_id"> > row specs: <col=550 S = $49 "s-7-1-t4.S"> > Local Test > 0: $64 "callret" := Call one_of_these ($60 "s-7-1-t5.G", <constant > (#i1100006)>, <constant (#i1083254)>) > 5: if (<constant (0)> 2(<) $64 "callret") then 9 else 10 unkn 10 > 9: BReturn 1 > 10: BReturn 0 > > in iterates $66 "in_iter" > over (<constant (#i1100006)>, <constant (#i1083254)>) > from DB.DBA.RDF_QUAD by RDF_QUAD_POGS 0.8 rows > Key RDF_QUAD_POGS ASC ($70 "s-7-1-t3.S") > <col=551 P = $27 "schemas/OE/sales_rep_id"> , <col=552 O = $61 "s-7-1-t5.O"> > , <col=549 G = $66 "in_iter"> > > in iterates $74 "in_iter" > over (<constant (#i1100006)>, <constant (#i1083254)>) > from DB.DBA.RDF_QUAD by RDF_QUAD_POGS 0.8 rows > Key RDF_QUAD_POGS ASC ($78 "s-7-1-t2.S") > <col=551 P = $28 "schemas/OE/orders_has_sales_rep"> , <col=552 O = $70 > "s-7-1-t3.S"> , <col=549 G = $74 "in_iter"> > 0 > > in iterates $82 "in_iter" > over (<constant (#i1100006)>, <constant (#i1083254)>) > from DB.DBA.RDF_QUAD by RDF_QUAD 0.48 rows > Key RDF_QUAD ASC ($86 "s-7-1-t0.S") > inlined <col=551 P = <constant (#i1)>> , <col=550 S = $78 "s-7-1-t2.S"> , > <col=552 O = $29 "schemas/OE/ORDERS"> , <col=549 G = $82 "in_iter"> > 0 > > from DB.DBA.RDF_QUAD by RDF_QUAD_POGS 0.43 rows > Key RDF_QUAD_POGS ASC ($92 "s-7-1-t1.S", $91 "s-7-1-t1.O", $90 "s-7-1-t1.G") > inlined <col=551 P = $31 "schemas/OE/order_date"> > row specs: <col=550 S = $86 "s-7-1-t0.S"> > Local Test > 0: $95 "callret" := Call one_of_these ($90 "s-7-1-t1.G", <constant > (#i1100006)>, <constant (#i1083254)>) > 5: if (<constant (0)> 2(<) $95 "callret") then 9 else 10 unkn 10 > 9: BReturn 1 > 10: BReturn 0 > > from DB.DBA.RDF_QUAD by RDF_QUAD_POGS 0.43 rows > Key RDF_QUAD_POGS ASC ($98 "s-7-1-t7.O", $97 "s-7-1-t7.G") > inlined <col=551 P = $30 "schemas/OE/order_of_order_items"> > 0 > Local Test > 0: $101 "callret" := Call one_of_these ($97 "s-7-1-t7.G", <constant > (#i1100006)>, <constant (#i1083254)>) > 5: if (<constant (0)> 2(<) $101 "callret") then 9 else 10 unkn 10 > 9: BReturn 1 > 10: BReturn 0 > > Since it is not just one query could it be a system wide issue. Eg Stats need > to be updated? > > Memory doesn't appear to be a problem. > > Cheers > Mark > ------------------------------------------------------------------------------ > Beautiful is writing same markup. Internet Explorer 9 supports > standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. > Spend less time writing and rewriting code and more time creating great > experiences on the web. Be a part of the beta today > http://p.sf.net/sfu/msIE9-sfdev2dev_______________________________________________ > Virtuoso-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/virtuoso-users
