Hi Clemens,

See below..



sqlite> EXPLAIN QUERY PLAN SELECT count(*) FROM ordercallback cb WHERE 
sessionuuid=(select uuid from session where date = (select max(date) 
from session)) AND endstate=0 AND working=1 AND cb_seq_num = (SELECT 
max(cb_seq_num) FROM ordercallback WHERE 
server_order_id=cb.server_order_id AND  sessionuuid=cb.sessionuuid AND 
working=1);
0|0|0|SEARCH TABLE ordercallback AS cb USING INDEX ordercallback_index5 
(sessionuuid=? AND endstate=? AND working=?)
0|0|0|EXECUTE SCALAR SUBQUERY 1
1|0|0|SEARCH TABLE session USING INDEX sqlite_autoindex_session_2 (date=?)
1|0|0|EXECUTE SCALAR SUBQUERY 2
2|0|0|SEARCH TABLE session USING COVERING INDEX sqlite_autoindex_session_2
0|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 3
3|0|0|SEARCH TABLE ordercallback USING INDEX ordercallback_index3 
(server_order_id=? AND sessionuuid=? AND working=?)

The cpu's are not very busy:

top - 14:52:57 up 481 days, 18:07,  5 users,  load average: 0.32, 0.36, 0.32
Tasks: 769 total,   1 running, 761 sleeping,   0 stopped,   7 zombie
Cpu0  : 18.8%us,  7.0%sy,  0.0%ni, 64.1%id,  0.0%wa,  0.0%hi, 10.1%si,  
0.0%st
Cpu1  :  8.8%us,  3.4%sy,  0.0%ni, 87.5%id,  0.0%wa,  0.0%hi, 0.3%si,  
0.0%st
Cpu2  :  9.5%us,  4.1%sy,  0.0%ni, 86.1%id,  0.0%wa,  0.0%hi, 0.3%si,  
0.0%st
Cpu3  :  7.4%us,  3.0%sy,  0.0%ni, 89.6%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu4  :  5.0%us,  3.0%sy,  0.0%ni, 91.6%id,  0.0%wa,  0.0%hi, 0.3%si,  
0.0%st
Cpu5  :  6.7%us,  2.0%sy,  0.0%ni, 91.2%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu6  :  3.4%us,  1.0%sy,  0.0%ni, 95.6%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu7  :  8.3%us,  1.3%sy,  0.0%ni, 90.3%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu8  :  7.9%us,  2.7%sy,  0.0%ni, 89.4%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu9  :  8.4%us,  2.7%sy,  0.0%ni, 88.6%id,  0.0%wa,  0.0%hi, 0.3%si,  
0.0%st
Cpu10 : 10.1%us,  2.4%sy,  0.0%ni, 87.2%id,  0.0%wa,  0.0%hi, 0.3%si,  
0.0%st
Cpu11 :  4.0%us,  2.0%sy,  0.0%ni, 94.0%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu12 :  6.4%us,  2.0%sy,  0.0%ni, 91.6%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu13 :  2.3%us,  1.3%sy,  0.0%ni, 96.0%id,  0.0%wa,  0.0%hi, 0.3%si,  
0.0%st
Cpu14 :  2.0%us,  1.0%sy,  0.0%ni, 97.0%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu15 :  1.7%us,  0.7%sy,  0.0%ni, 97.7%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu16 : 10.9%us,  6.0%sy,  0.0%ni, 83.1%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu17 :  8.6%us,  1.7%sy,  0.0%ni, 89.4%id,  0.0%wa,  0.0%hi, 0.3%si,  
0.0%st
Cpu18 :  3.3%us,  1.7%sy,  0.0%ni, 95.0%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu19 :  1.0%us,  1.0%sy,  0.0%ni, 98.0%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu20 :  0.7%us,  0.7%sy,  0.0%ni, 98.7%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu21 :  1.7%us,  0.3%sy,  0.0%ni, 98.0%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu22 :  0.7%us,  0.3%sy,  0.0%ni, 99.0%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu23 :  0.3%us,  0.3%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu24 :  3.7%us,  1.3%sy,  0.0%ni, 95.0%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu25 :  4.6%us,  1.3%sy,  0.0%ni, 94.0%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu26 :  0.7%us,  0.7%sy,  0.0%ni, 98.7%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu27 :  1.0%us,  0.7%sy,  0.0%ni, 98.3%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu28 :  1.3%us,  0.3%sy,  0.0%ni, 98.3%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu29 :  2.6%us,  0.7%sy,  0.0%ni, 96.7%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu30 :  1.7%us,  0.0%sy,  0.0%ni, 98.3%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu31 :  0.7%us,  0.7%sy,  0.0%ni, 98.7%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Mem:  32787924k total, 22357144k used, 10430780k free,    52244k buffers
Swap: 16465912k total,    38740k used, 16427172k free,  5721572k cached



And below is on the machine where the number of inserts is much higher 
but where the query _does_ always return (and also always quite fast). 
As you see the cpu's are more busy and the query plan is the same.

sqlite> EXPLAIN QUERY PLAN SELECT count(*) FROM ordercallback cb WHERE 
sessionuuid=(select uuid from session where date = (select max(date) 
from session)) AND endstate=0 AND working=1 AND cb_seq_num = (SELECT 
max(cb_seq_num) FROM ordercallback WHERE 
server_order_id=cb.server_order_id AND  sessionuuid=cb.sessionuuid AND 
working=1);
0|0|0|SEARCH TABLE ordercallback AS cb USING INDEX ordercallback_index5 
(sessionuuid=? AND endstate=? AND working=?)
0|0|0|EXECUTE SCALAR SUBQUERY 1
1|0|0|SEARCH TABLE session USING INDEX sqlite_autoindex_session_2 (date=?)
1|0|0|EXECUTE SCALAR SUBQUERY 2
2|0|0|SEARCH TABLE session USING COVERING INDEX sqlite_autoindex_session_2
0|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 3
3|0|0|SEARCH TABLE ordercallback USING INDEX ordercallback_index3 
(server_order_id=? AND sessionuuid=? AND working=?)


top - 14:59:00 up 186 days, 22:28,  7 users,  load average: 2.55, 2.24, 2.18
Tasks: 433 total,   1 running, 420 sleeping,   0 stopped,  12 zombie
Cpu0  : 16.0%us,  6.8%sy,  0.0%ni, 73.7%id,  0.0%wa,  0.0%hi, 3.4%si,  
0.0%st
Cpu1  : 97.0%us,  3.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu2  : 14.3%us,  5.0%sy,  0.0%ni, 80.7%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu3  : 98.0%us,  2.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu4  : 24.3%us,  1.0%sy,  0.0%ni, 74.7%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu5  : 31.6%us,  0.7%sy,  0.0%ni, 67.4%id,  0.0%wa,  0.0%hi, 0.3%si,  
0.0%st
Cpu6  :  8.5%us, 12.2%sy,  0.0%ni, 79.3%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu7  :  2.7%us,  1.7%sy,  0.0%ni, 95.7%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu8  :  4.0%us,  2.7%sy,  0.0%ni, 93.3%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu9  :  7.0%us,  1.0%sy,  0.0%ni, 92.1%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu10 :  6.7%us,  1.7%sy,  0.0%ni, 91.6%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Cpu11 :  3.0%us,  0.3%sy,  0.0%ni, 96.6%id,  0.0%wa,  0.0%hi, 0.0%si,  
0.0%st
Mem:  32774964k total, 32386456k used,   388508k free,   318704k buffers
Swap:  8183800k total,   354796k used,  7829004k free, 20063048k cached





On 09/25/2015 01:27 PM, Clemens Ladisch wrote:
> gunnar wrote:
>> the sqlite client is stuck with the following stack traces
> According to these stack traces, the client is not stuck but is
> busy searching and reading data from the database.
>
> What is the EXPLAIN QUERY PLAN output for this query?
>
>> Disk is not busy
> And the CPU?
>
>
> Regards,
> Clemens
> _______________________________________________
> sqlite-users mailing list
> sqlite-users at mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>

Reply via email to