Một lệnh SQLite có thể được đặt trước bởi từ khóa EXPLAIN hoặc bởi cụm từ EXPLAIN QUERY PLAN để miêu tả các chi tiết của bảng.
Hoặc các sửa đổi làm cho các lệnh SQLite vận hành như là một truy vấn và để trả về thông tin về cách lệnh SQLite sẽ được vận hành nếu từ khóa EXPLAIN.
- Kết quả từ EXPLAIN và EXPLAIN QUERY PLAN là chỉ để dành cho việc phân tích và xử lý các sự cố.
- Các ứng dụng không nên sử dụng EXPLAIN và EXPLAIN QUERY PLAN khi cách vận hành của chúng là biến đổi.
Cú pháp cơ bản của EXPLAIN là như sau:
EXPLAIN [SQLite Query]
Cú pháp cơ bản của EXPLAIN QUERY PLAN là như sau:
EXPLAIN QUERY PLAN [SQLite Query]
Ví dụ
Bạn theo dõi bảng COMPANY có các bản ghi sau:
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
Bây giờ, chúng ta kiểm tra truy vấn con EXPLAIN với lệnh SELECT:
sqlite> EXPLAIN SELECT * FROM COMPANY WHERE Salary >= 20000;
Ví dụ trên sẽ cho kết quả:
addr opcode p1 p2 p3
---------- ---------- ---------- ---------- ----------
0 Goto 0 19
1 Integer 0 0
2 OpenRead 0 8
3 SetNumColu 0 5
4 Rewind 0 17
5 Column 0 4
6 RealAffini 0 0
7 Integer 20000 0
8 Lt 357 16 collseq(BI
9 Rowid 0 0
10 Column 0 1
11 Column 0 2
12 Column 0 3
13 Column 0 4
14 RealAffini 0 0
15 Callback 5 0
16 Next 0 5
17 Close 0 0
18 Halt 0 0
19 Transactio 0 0
20 VerifyCook 0 38
21 Goto 0 1
22 Noop 0 0
Cú pháp cơ bản của EXPLAIN QUERY PLAN là như sau:
SQLite> EXPLAIN QUERY PLAN SELECT * FROM COMPANY WHERE Salary >= 20000;
order from detail
---------- ---------- -------------
0 0 TABLE COMPANY