數據庫雖然在學校系統學習過,但是在工作中真正使用起來收獲又是不一樣的,今天起打算將項目中使用到的技術再分享出來,不以書本的順序,只從碰到的問題為順序。
雖然不是純粹的數據庫工程師,但是每個程序員總免不了要寫sql語句。最近一直在寫服務,從數據庫讀取數據,但是當項目上線之后再回過頭來看這些sql語句,總發現有很多是相似的,不如where條件有很多是一樣的。這讓我想起一句話,大意是:如果程序中有很多相同的代碼,那么盡量去提取出來(當然是盡量,不是一定要提取,這個要注意)。那么sql語句不也是一樣嗎,比如,如果有相似的查詢語句,就應該作為存儲過程公共使用。比如下面說的,變量綁定技術。
Oracle在執行sql查詢語句時,首先從共享池中查找當前使用的完全相同的(指所有字符相同,字母大小寫相同、空格相同)查詢sql語句。所謂共享池中就是指都是經過解析和優化的語句。所以如果共享池中有公用的語句,那么減少了重新解析和優化,效率將會提高。下面來看變量綁定如何使用。
有一個tb_Name表,有id、name字段。
select * from tb_Name where id='12345'
假設id='12345'其他地方也用到。
那么,聲明一個變量:_setid
begin :_setid:='12345'; end
那么在其他語句中直接使用這個變量,
select name from tb_Name where id=:_setid
這樣節省了解析優化的時間。
當然變量綁定只有在反復使用某個語句時使用。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
