2016-10-30 1 views
0

쿼리 실행 시간을 확인하고 싶습니다. (.timer를 사용하지 않음)
각 SQL 문 실행 시간을 측정하고 싶습니다.
Gettimeofday 함수를 사용할 수 있다고 생각합니다.
그러나 각 SQL 쿼리의 "시작/끝"지점을 알 수 없습니다.SQLite에서 각 SQL 문의 쿼리 실행 시간을 측정하는 방법

반바지에

,
- 나는 각 쿼리 실행 시간을 측정 할 수있는 방법 - 쿼리 실행
시 시작/종료 점은 무엇입니까? (.timer 옵션을 사용하지 않음)

+0

'sqlite3' 명령 줄 셸이나 자신의 프로그램에서 데이터베이스에 액세스하고 있습니까? –

답변

2

OS X을 사용하는 경우 터미널의 명령 줄을 사용하여 시간을 측정하여 쿼리의 실행 시간을 측정하는 것이 좋습니다. 그것은 가장 쉬운 방법입니다 :

time printf "<your query>;" | sqlite3 databaseFile.db > /dev/null 

예 :

time printf "select * from blame;" | sqlite3 mydata.db > /dev/null 

real 0m1.603s 
user 0m1.167s 
sys  0m0.112s 

명령도 리눅스에서 작동합니다. 출력 저장/인쇄로 인한 시간 낭비를 피하기 위해 출력을/dev/null로 파이프 처리합니다.

데이터베이스 연결을 열고 실행 파일을로드하는 데 약간의 오버 헤드가 있지만 쿼리 비용이 얼마나 비쌉니까?

당신은 이런 식으로 뭔가를 수행하여 그 오버 헤드의 아이디어를 얻을 수 있습니다

time printf ".schema" | sqlite3 mydata.db > /dev/null 

당신이 무슨 일이 일어나고 있는지에 대한 이해를 얻고 싶은 경우에, 나는 당신이 설명 명령으로 보면 좋습니다.

explain select * from table; 

을 당신은 운영 sqlite가에 대한 자세한 설명은 쿼리를 계산하기 위해 할 기대 얻을 것이다 : sqlite3를에서 않습니다.

관련 문제