인덱스를 확인하고 싶은 Sqlite 데이터베이스가 있습니다. MS SQL Analyzer는 쿼리 실행을 무너 뜨리고 인덱스를 활용하는 데 유용합니다.Sqlite 쿼리 실행을 분석하려면 어떻게해야합니까?
Sqlite와 비슷한 도구가 있습니까?
인덱스를 확인하고 싶은 Sqlite 데이터베이스가 있습니다. MS SQL Analyzer는 쿼리 실행을 무너 뜨리고 인덱스를 활용하는 데 유용합니다.Sqlite 쿼리 실행을 분석하려면 어떻게해야합니까?
Sqlite와 비슷한 도구가 있습니까?
나는 꽤 그래픽 도구가 없다는 것을 알고 있지만, 여러분이 찾는 모든 정보는 EXPLAIN
키워드에서 얻을 수 있습니다.
sqlite> explain select * from users where name='foo'; 0|Trace|0|0|0||00| 1|String8|0|1|0|foo|00| 2|Goto|0|18|0||00| 3|OpenRead|0|2|0|2|00| 4|OpenRead|1|3|0|keyinfo(1,BINARY)|00| 5|IsNull|1|15|0||00| 6|Affinity|1|1|0|bb|00| 7|SeekGe|1|15|1|1|00| 8|IdxGE|1|15|1|1|01| 9|IdxRowid|1|2|0||00| 10|Seek|0|2|0||00| 11|Column|1|0|3||00| 12|Column|0|1|4||00| 13|ResultRow|3|2|0||00| 14|Next|1|8|0||00| 15|Close|0|0|0||00| 16|Close|1|0|0||00| 17|Halt|0|0|0||00| 18|Transaction|0|0|0||00| 19|VerifyCookie|0|5|0||00| 20|TableLock|0|2|0|users|00| 21|Goto|0|3|0||00|: 이름에 입각 쿼리가
user_names
인덱스를 사용하는 반면
sqlite> explain select * from users where email='foo'; 0|Trace|0|0|0||00| 1|String8|0|1|0|foo|00| 2|Goto|0|13|0||00| 3|OpenRead|0|2|0|2|00| 4|Rewind|0|11|0||00| 5|Column|0|1|2||00| 6|Ne|1|10|2|collseq(BINARY)|6a| 7|Column|0|0|4||00| 8|Column|0|1|5||00| 9|ResultRow|4|2|0||00| 10|Next|0|5|0||01| 11|Close|0|0|0||00| 12|Halt|0|0|0||00| 13|Transaction|0|0|0||00| 14|VerifyCookie|0|5|0||00| 15|TableLock|0|2|0|users|00| 16|Goto|0|3|0||00|
:
sqlite> create table users (name, email); sqlite> create index user_names on users (name);
email
에 입각 쿼리가 인덱스를 사용하지 않습니다
EXPLAIN
을 사용하면 SQLite는의 가상 머신, VDBE와 그립에 오는 :
http://www.sqlite.org/vdbe.html
은하지만이 보이는, 당신에게 쿼리에 대한 전체 이야기를주는만큼 어려운 일이 아니다. outis으로
는 말했다 : 나처럼 단순히 그것을 사용하는 경우
EXPLAIN QUERY PLAN SELECT * FROM FOO
당신이 당신의 인덱스 타격하고 보장하기 위해,보다 읽기 쉬운 출력 트릭을합니까
이 명령의 출력에 대한 좋은 설명이 여기에 있습니다. https : //www.sqlite .org/eqp.html – JoshB
거기 (인덱스를?)
:이 좋은 그래픽 도구 여기https://github.com/asutherland/grok-sqlite-explain
출력의 예입니다
및 관련 블로그 게시물 : http://www.visophyte.org/blog/2010/04/06/performance-annotated-sqlite-explaination-visualizations-using-systemtap/
'VM의 지침이없는 인덱스 사용에 대한 정보를 제공합니다 QUERY PLAN'을 설명한다. – outis
명령 줄에서 .explain 옵션을 활성화하여 출력 형식을 향상시킬 수도 있습니다. ".explain ON | OFF EXPLAIN에 적합한 출력 모드를 켜거나 끕니다." – Wade
위의 링크는 구식입니다. 여기에 가상 시스템에 대한 정보가 있습니다. http://www.sqlite.org/opcode.html – Fabian