Hi Mitko, I executed the query many times with no notable improvement of response time.
We are not using striped setup. I rebooted Virtuoso, checked the stats, ran the query and re-checked the stats. Onle the RDF_QUAD (primary key?) and RDF_QUAD_POGS indexes seem to be used, see below. Cheers, Martin -------------------- AFTER SERVER RESTART -------------------- SQL> select * from sys_d_stat where INDEX_NAME like 'RDF_QUAD%'; KEY_TABLE INDEX_NAME TOUCHES READS READ_PCT N_DIRTY N_BUFFERS VARCHAR NOT NULL VARCHAR INTEGER INTEGER INTEGER INTEGER INTEGER _______________________________________________________________________________ DB.DBA.RDF_QUAD RDF_QUAD 4505 612 13 0 612 DB.DBA.RDF_QUAD RDF_QUAD_GS 0 0 0 0 0 DB.DBA.RDF_QUAD RDF_QUAD_OP 0 0 0 0 0 DB.DBA.RDF_QUAD RDF_QUAD_POGS 432 1657 382 0 1657 DB.DBA.RDF_QUAD RDF_QUAD_SP 3634 3 0 0 3 SQL> status(); REPORT VARCHAR _______________________________________________________________________________ OpenLink Virtuoso Server Version 06.01.3127-pthreads for Linux as of Apr 19 2010 Started on: 2010/04/22 18:18 GMT+120 Database Status: File size 6257901568, 763904 pages, 407986 free. 2621440 buffers, 2870 used, 0 dirty 0 wired down, repl age 0 0 w. io 0 w/crsr. Disk Usage: 2945 reads avg 0 msec, 0% r 0% w last 0 s, 134 writes, 23 read ahead, batch = 97. Autocompact 0 in 0 out, 0% saved. Gate: 750 2nd in reads, 0 gate write waits, 0 in while read 0 busy scrap. Log = data/narysubproperty.trx, 87 bytes 355829 pages have been changed since last backup (in checkpoint state) Current backup timestamp: 0x0000-0x00-0x00 Last backup date: unknown Clients: 1 connects, max 1 concurrent RPC: 4 calls, 1 pending, 1 max until now, 0 queued, 0 burst reads (0%), 0 second brk=21519429632 Checkpoint Remap 38 pages, 0 mapped back. 0 s atomic time. DB master 763904 total 407986 free 38 remap 0 mapped back temp 256 total 251 free Lock Status: 0 deadlocks of which 0 2r1w, 0 waits, Currently 1 threads running 0 threads waiting 0 threads in vdb. Pending: Client 1111:1: Account: dba, 203 bytes in, 256 bytes out, 1 stmts. PID: 6680, OS: unix, Application: unknown, IP#: 127.0.0.1 Transaction status: PENDING, 1 threads. Locks: Running Statements: Time (msec) Text 83 status() Replication Status: Server db-ALX-DEV03. db-ALX-DEV03 db-ALX-DEV03 0 OFF. Hash indexes ----- QUERY ----- SQL> sparql select ?conflict ?dateBegin where { ?conflict a <http://dbpedia.org/ontology/MilitaryConflict> ; ?p <http://dbpedia.org/ontology/Event> . ?p rdfs:subPropertyOf rdf:type ; <http://www.w3.org/2006/time#hasBeginning> ?dateBegin . }; ... http://dbpedia.org/resource/Siege_of_Gezer 2007-08-26 18:33:33 http://dbpedia.org/resource/Siege_of_Tripoli_%281821%29 1821-09-23 00:00:00 http://dbpedia.org/resource/Submarine_Incident_off_Kildin_island 1992-02-11 00:00:00 http://dbpedia.org/resource/The_1793_Battle_of_Hightower 1793-10-17 00:00:00 http://dbpedia.org/resource/Second_Battle_of_Langensalza 1866-06-27 00:00:00 http://dbpedia.org/resource/Siege_of_Messolonghi_%281822%29 1822-10-25 00:00:00 4250 Rows. -- 9450 msec. ----------- AFTER QUERY ----------- SQL> select * from sys_d_stat where INDEX_NAME like 'RDF_QUAD%'; KEY_TABLE INDEX_NAME TOUCHES READS READ_PCT N_DIRTY N_BUFFERS VARCHAR NOT NULL VARCHAR INTEGER INTEGER INTEGER INTEGER INTEGER _______________________________________________________________________________ DB.DBA.RDF_QUAD RDF_QUAD 17981 11245 62 0 11245 DB.DBA.RDF_QUAD RDF_QUAD_GS 0 0 0 0 0 DB.DBA.RDF_QUAD RDF_QUAD_OP 0 0 0 0 0 DB.DBA.RDF_QUAD RDF_QUAD_POGS 3811901 30618 0 0 30618 DB.DBA.RDF_QUAD RDF_QUAD_SP 3634 3 0 0 3 SQL> status(); REPORT VARCHAR _______________________________________________________________________________ OpenLink Virtuoso Server Version 06.01.3127-pthreads for Linux as of Apr 19 2010 Started on: 2010/04/22 18:12 GMT+120 Database Status: File size 6257901568, 763904 pages, 408005 free. 2621440 buffers, 44669 used, 0 dirty 0 wired down, repl age 0 0 w. io 0 w/crsr. Disk Usage: 44744 reads avg 0 msec, 0% r 0% w last 0 s, 140 writes, 237 read ahead, batch = 179. Autocompact 0 in 0 out, 0% saved. Gate: 676 2nd in reads, 0 gate write waits, 0 in while read 0 busy scrap. Log = data/narysubproperty.trx, 87 bytes 355829 pages have been changed since last backup (in checkpoint state) Current backup timestamp: 0x0000-0x00-0x00 Last backup date: unknown Clients: 1 connects, max 1 concurrent RPC: 52 calls, 1 pending, 1 max until now, 0 queued, 82 burst reads (157%), 0 second brk=21596606464 Checkpoint Remap 19 pages, 0 mapped back. 0 s atomic time. DB master 763904 total 408005 free 19 remap 0 mapped back temp 256 total 251 free Lock Status: 0 deadlocks of which 0 2r1w, 0 waits, Currently 1 threads running 0 threads waiting 0 threads in vdb. Pending: Client 1111:1: Account: dba, 2171 bytes in, 357896 bytes out, 1 stmts. PID: 6619, OS: unix, Application: unknown, IP#: 127.0.0.1 Transaction status: PENDING, 1 threads. Locks: Running Statements: Time (msec) Text 536 status() Replication Status: Server db-ALX-DEV03. db-ALX-DEV03 db-ALX-DEV03 0 OFF. Hash indexes 43 Rows. -- 86 msec. > Hi Martin, > > From the statistics i seem to me the db cache is not warmed, the disk > cache is cold as only couple of disk buffers are used. What happens > if you run query few more times ? you should see difference with > execution time, how is it compared agains first run. If still time > large, can check the disk status by : > > select top 20 * from sys_d_stat order by reads desc; This could > give some ideas which index is read so often. > > Another note: are you using striped setup re db files with separate > IO queues ? Also check FDsPerFile in INI , Parameters section, could > set it to 4 if you have many reads, but this should not affect one > query as all should be in memory .when executed few times > > Best Regards, Mitko