【最佳化】使用繫結變數 OR 不使用繫結變數,這不是問題!
就目前現狀來看,大家有點過分強調繫結變數的作用了。
任何一種最佳化方法都尤其適用場景,繫結變數技術也不例外。不可盲目的將其信奉為影響效能的罪魁禍首。
1.分清系統是OLTP還是OLAP型別很重要
通常來說,我們把業務分為兩類,線上事務處理系統(OLTP)和線上分析系統(OLAP)或者決策支援系統(DSS)。這兩類系統在資料庫設計上截然不同。比如OLTP系統強調資料庫的記憶體效率,強調記憶體各種指標的命中率,強調繫結變數,強調併發操作;而OLAP系統則強調資料分析,強調SQL執行時間,強調磁碟I/O,強調分割槽等。
2.OLTP型別的系統適合大量使用繫結變數技術
OLTP系統是一個資料塊變化非常頻繁,SQL語句提交非常頻繁的系統。對於資料塊來說,應儘可能讓資料塊儲存在記憶體當中,對於SQL來說,儘可能使用繫結變數技術來達到SQL重用,減少物理I/O和重複的SQL解析,從而極大的改善資料庫的效能。
3.OLAP系統中使用繫結變數是徒勞的
在OLAP系統中,不需要使用繫結變數(Bind),因為系統中SQL數量和執行頻率都很低,SQL語句的分析時間較之執行時間來說可以忽略不計。但是OLAP中可以大量使用點陣圖索引,物化檢視,對於大的事務,儘量尋求速度上的最佳化,沒有必要像OLTP那樣要求快速提交,甚至要刻意減慢執行的速度。繫結變數真正的用途是在OLTP系統中,這個系統通常有這樣的特點,使用者併發數很大,使用者的請求十分密集,並且這些請求的SQL 大多數是可以重複使用的。
4.小結
以上從理論層面解析了繫結變數的適用場景。希望給大家在日常最佳化過程中有些指導。請大家避免盲目調優帶來的窘境。
Good luck.
secooler
11.01.09
-- The End --
任何一種最佳化方法都尤其適用場景,繫結變數技術也不例外。不可盲目的將其信奉為影響效能的罪魁禍首。
1.分清系統是OLTP還是OLAP型別很重要
通常來說,我們把業務分為兩類,線上事務處理系統(OLTP)和線上分析系統(OLAP)或者決策支援系統(DSS)。這兩類系統在資料庫設計上截然不同。比如OLTP系統強調資料庫的記憶體效率,強調記憶體各種指標的命中率,強調繫結變數,強調併發操作;而OLAP系統則強調資料分析,強調SQL執行時間,強調磁碟I/O,強調分割槽等。
2.OLTP型別的系統適合大量使用繫結變數技術
OLTP系統是一個資料塊變化非常頻繁,SQL語句提交非常頻繁的系統。對於資料塊來說,應儘可能讓資料塊儲存在記憶體當中,對於SQL來說,儘可能使用繫結變數技術來達到SQL重用,減少物理I/O和重複的SQL解析,從而極大的改善資料庫的效能。
3.OLAP系統中使用繫結變數是徒勞的
在OLAP系統中,不需要使用繫結變數(Bind),因為系統中SQL數量和執行頻率都很低,SQL語句的分析時間較之執行時間來說可以忽略不計。但是OLAP中可以大量使用點陣圖索引,物化檢視,對於大的事務,儘量尋求速度上的最佳化,沒有必要像OLTP那樣要求快速提交,甚至要刻意減慢執行的速度。繫結變數真正的用途是在OLTP系統中,這個系統通常有這樣的特點,使用者併發數很大,使用者的請求十分密集,並且這些請求的SQL 大多數是可以重複使用的。
4.小結
以上從理論層面解析了繫結變數的適用場景。希望給大家在日常最佳化過程中有些指導。請大家避免盲目調優帶來的窘境。
Good luck.
secooler
11.01.09
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-683500/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【優化】使用繫結變數 OR 不使用繫結變數,這不是問題!優化變數
- PLSQL使用繫結變數SQL變數
- 繫結變數變數
- SQL Developer中使用繫結變數SQLDeveloper變數
- 繫結變數的使用範圍變數
- 關於繫結變數的使用變數
- 使用繫結變數的一點總結!變數
- 繫結變數之繫結變數窺探(Bind Peeking)變數
- Oracle 繫結變數Oracle變數
- 最佳化你的應用--請使用繫結變數變數
- 【sql調優】使用繫結變數(二)SQL變數
- 【sql調優】使用繫結變數(一)SQL變數
- 繫結變數優缺點、使用、繫結變數窺探、 Oracle自適應共享遊標變數Oracle
- 如何在對in操作使用變數繫結(轉)變數
- 在繫結變數下使用outline變數
- PLSQL中使用繫結變數的語法SQL變數
- java程式裡怎麼使用繫結變數Java變數
- SQL使用繫結變數,測試例項。SQL變數
- 檢視繫結變數變數
- 繫結變數窺測變數
- Oracle之繫結變數Oracle變數
- 關於繫結變數變數
- 從不繫結變數與繫結變數兩種情況討論柱狀圖的作用變數
- ORACLE 繫結變數用法總結Oracle變數
- OLTP系統中儘量使用繫結變數變數
- oracle 查詢未使用繫結變數的sqlOracle變數SQL
- 繫結變數窺測的演變變數
- Oracle 變數繫結與變數窺視合集Oracle變數
- 繫結變數的測試變數
- Oracle 繫結變數窺探Oracle變數
- oracle 繫結變數(bind variable)Oracle變數
- 如何獲取繫結變數變數
- Oracle 繫結變數 詳解Oracle變數
- 關於繫結變數的SQL繫結什麼值變數SQL
- SQL*Plus中使用DATE型別的繫結變數SQL型別變數
- 什麼時候使用繫結變數效能反而更差變數
- 在oracle的plsql中為cursor使用繫結變數OracleSQL變數
- 查詢沒有使用繫結變數的sql zt變數SQL