2017-02-15 13:40 GMT+01:00 Cecil Westerhof <cldwester...@gmail.com>: > I wrote the following Bash script: >
I wrote a better one. See end of post. Inprinciple you are only interested in the totals. I also changed the runs from 10 to 25. The OR version is the least efficient and it look likes the BETWEEN version 2 is the most efficient. It looks like it uses less user and more sys. The results of two runs: Timing OR version real: 7.345 user: 6.688 sys: 0.648 Timing ABS version real: 6.403 user: 5.56 sys: 0.84 Timing NOT BETWEEN version real: 6.382 user: 5.62 sys: 0.752 Timing NOT BETWEEN version 2 real: 6.291 user: 5.488 sys: 0.788 and: Timing OR version real: 7.228 user: 6.496 sys: 0.728 Timing ABS version real: 6.647 user: 5.904 sys: 0.74 Timing NOT BETWEEN version real: 6.431 user: 5.688 sys: 0.736 Timing NOT BETWEEN version 2 real: 6.263 user: 5.492 sys: 0.756 The script: #!/usr/bin/env bash set -o errexit set -o nounset declare -r COUNT=25 declare -r DISPLAY_ALL=F declare -r SELECT=' SELECT date , time , usertime , systemtime , idletime , waittime , stolentime , (usertime + systemtime + idletime + waittime + stolentime) AS totaltime FROM vmstat ' declare -r ABS_VERSION=" ${SELECT} WHERE ABS(100 - totaltime) > 1 ;" declare -r OR_VERSION=" ${SELECT} WHERE totaltime < 99 OR totaltime > 101 ;" declare -r NOT_BETWEEN_VERSION=" ${SELECT} WHERE totaltime NOT BETWEEN 99 AND 101 ;" declare -r NOT_BETWEEN_VERSION2=" ${SELECT} WHERE NOT (totaltime BETWEEN 99 AND 101) ;" function timeQuery { for i in $(seq ${COUNT}) ; do sqlite3 ~/Databases/general.sqlite <<EOT .timer on .output /dev/null ${1} EOT done } function totalTimes { declare output=$(timeQuery "${1}") if [[ ${DISPLAY_ALL} == 'T' ]] ; then printf "${output}\n" fi printf "${output}" | awk ' END { print "real: " real print "user: " user print "sys: " sys } { real += $4 user += $6 sys += $8 } ' } printf "Timing OR version\n" totalTimes "${OR_VERSION}" printf "\n\nTiming ABS version\n" totalTimes "${ABS_VERSION}" printf "\n\nTiming NOT BETWEEN version\n" totalTimes "${NOT_BETWEEN_VERSION}" printf "\n\nTiming NOT BETWEEN version 2\n" totalTimes "${NOT_BETWEEN_VERSION2}" -- Cecil Westerhof _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users