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

Reply via email to