2013年1月5日土曜日

[Android]SQLiteで実行計画を取得する

SQLServerやOracleでは、実行するクエリーに対してどれくらいのコストがかかるかを評価することができます。で、Androidで利用されるSQLiteでは?とおもって調査してみました。 実は簡単で、実行するクエリーの前に、「explain」ってつけるだけ。
コードはこんなかんじ。
explain select * from TEST_TABLE
で、実行結果はというと、こんな感じ。
addr    opcode    p1    p2    p3    p4    p5    comment
0    Trace    0    0    0        00    null
1    Goto    0    14    0        00    null
2    OpenRead    0    4    0    4    00    null
3    Rewind    0    12    0        00    null
4    Rowid    0    1    0        00    null
5    Column    0    1    2        00    null
6    Column    0    2    3        00    null
7    RealAffinity    3    0    0        00    null
8    Column    0    3    4        00    null
9    RealAffinity    4    0    0        00    null
10    ResultRow    1    4    0        00    null
11    Next    0    4    0        01    null
12    Close    0    0    0        00    null
13    Halt    0    0    0        00    null
14    Transaction    0    0    0        00    null
15    VerifyCookie    0    2    0        00    null
16    TableLock    0    4    0    TEST_TABLE    00    null
17    Goto    0    2    0        00    null
・・・みかたがさっぱりわからない。今度調査してみよう。

0 件のコメント :