SQLite - AÇIKLAMA
SQLite deyiminden önce "EXPLAIN" anahtar sözcüğü veya bir tablonun ayrıntılarını açıklamak için kullanılan "EXPLAIN QUERY PLAN" ifadesi gelebilir.
Her iki değişiklik de SQLite ifadesinin bir sorgu gibi davranmasına ve EXPLAIN anahtar sözcüğü veya deyimi atlanmış olsaydı SQLite ifadesinin nasıl çalıştığı hakkında bilgi döndürmesine neden olur.
EXPLAIN ve EXPLAIN SORU PLANININ çıktısı yalnızca etkileşimli analiz ve sorun giderme için tasarlanmıştır.
Çıktı formatının ayrıntıları bir SQLite sürümünden diğerine değişebilir.
Uygulamalar, tam davranışları değişken olduğundan ve yalnızca kısmen belgelendiğinden EXPLAIN veya EXPLAIN QUERY PLAN kullanmamalıdır.
Sözdizimi
sözdizimi EXPLAIN aşağıdaki gibidir -
EXPLAIN [SQLite Query]
sözdizimi EXPLAIN QUERY PLAN aşağıdaki gibidir -
EXPLAIN QUERY PLAN [SQLite Query]
Misal
Aşağıdaki kayıtlarla ŞİRKET tablosunu düşünün -
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
Şimdi, aşağıdaki alt sorguyu SELECT deyimi ile kontrol edelim -
sqlite> EXPLAIN SELECT * FROM COMPANY WHERE Salary >= 20000;
Bu, aşağıdaki sonucu verecektir.
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
Şimdi aşağıdakileri kontrol edelim Explain Query Plan SELECT ifadesiyle -
SQLite> EXPLAIN QUERY PLAN SELECT * FROM COMPANY WHERE Salary >= 20000;
order from detail
---------- ---------- -------------
0 0 TABLE COMPANY