SQL很嬌氣,談談大小寫對(duì)SQL語句的影響
SQL語句存放在内存中,可以被(bèi)所有的數據庫用戶共享. 因此,當你執行一個SQL語句時(shí),如果它和之前的執行過(guò)的語句完全相同,就(jiù)能(néng)很快獲得已經(jīng)被(bèi)解析的語句。
當你向(xiàng)服務器提交一個SQL語句,首先會(huì)在指定内存中查找相同的語句。這(zhè)裡(lǐ)需要注明的是,兩(liǎng)者采取的是一種(zhǒng)嚴格匹配,要達成(chéng)共享,SQL語句必須完全相同(包括空格,換行等).
A.字符級的比較:當前被(bèi)執行的語句和共享池中的語句必須完全相同.
例如:
SELECT * FROM EMP;
和下列每一個都(dōu)不同
SELECT * from EMP;
Select * From Emp;
B.兩(liǎng)個語句所指的對(duì)象必須完全相同:
例如:
用戶 對(duì)象名 如何訪問(聲明部分)
Jack sal_limit private synonym
Work_city public synonym
Plant_detail public synonym
Jill sal_limit private synonym
Work_city public synonym
Plant_detail table owner
考慮一下下列SQL語句能(néng)否在這(zhè)兩(liǎng)個用戶之間共享.
C.兩(liǎng)個SQL語句中必須使用相同的名字的綁定變量(bind variables)
例如:第一組的兩(liǎng)個SQL語句是相同的(可以共享),而第二組中的兩(liǎng)個語句是不同的(即使在運行時(shí),賦于不同的綁定變量相同的值)
a.
select pin , name from people where pin = :blk1.pin;
select pin , name from people where pin = :blk1.pin;
b.
select pin , name from people where pin = :blk1.ot_ind;
select pin , name from people where pin = :blk1.ov_ind;