SQL語句連軟解析都可以避免?
最近在讀Troubleshooting Oracle Performance。裡面有段話,百思不得其解。見紅色字型部分。
From a performance point of view, you should avoid hard parses as much as possible. This
is precisely the reason why the database engine stores shareable cursors in the library cache. In
this way, every process belonging to the instance might be able to reuse them. There are two
reasons why this leads to high costs for hard parses. The first is that the logical and physical
optimizations are highly CPU-intensive operations. The second is that memory is needed for
storing the parent and child cursors in the library cache. Since the library cache is shared over
all sessions, memory allocations in the library cache must be serialized. In practice, one of the
latches protecting the shared pool must be obtained before being able to allocate the memory
needed for both the parent and child cursors. Even if the impact of soft parses is much lower
than that of hard parses, it is desirable to avoid soft parses as well because they are also subject to some serialization. In fact, to search for a shareable parent cursor, you must obtain one of
the latches protecting the library cache. In summary, you should avoid soft and hard parses as
much as possible because they inhibit the scalability of applications.
紅色部分的意思:即使軟計息比硬解析的影響小,但還是應該儘量的避免軟解析,他們也會導致序列化。
一條SQL語句,沒有硬解析的情況下,可以避免軟解析?我一直理解的是,SQL語句要不硬解析,要不軟解析?莫非還可以不解析嗎?請大俠賜教啊。
[ 本帖最後由 wei-xh 於 2010-5-25 23:15 編輯 ]
From a performance point of view, you should avoid hard parses as much as possible. This
is precisely the reason why the database engine stores shareable cursors in the library cache. In
this way, every process belonging to the instance might be able to reuse them. There are two
reasons why this leads to high costs for hard parses. The first is that the logical and physical
optimizations are highly CPU-intensive operations. The second is that memory is needed for
storing the parent and child cursors in the library cache. Since the library cache is shared over
all sessions, memory allocations in the library cache must be serialized. In practice, one of the
latches protecting the shared pool must be obtained before being able to allocate the memory
needed for both the parent and child cursors. Even if the impact of soft parses is much lower
than that of hard parses, it is desirable to avoid soft parses as well because they are also subject to some serialization. In fact, to search for a shareable parent cursor, you must obtain one of
the latches protecting the library cache. In summary, you should avoid soft and hard parses as
much as possible because they inhibit the scalability of applications.
紅色部分的意思:即使軟計息比硬解析的影響小,但還是應該儘量的避免軟解析,他們也會導致序列化。
一條SQL語句,沒有硬解析的情況下,可以避免軟解析?我一直理解的是,SQL語句要不硬解析,要不軟解析?莫非還可以不解析嗎?請大俠賜教啊。
[ 本帖最後由 wei-xh 於 2010-5-25 23:15 編輯 ]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22034023/viewspace-664139/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java中如何解析SQL語句、格式化SQL語句、生成SQL語句?JavaSQL
- 【體系結構】sql語句解析過程小實驗 軟解析、硬解析SQL
- SQL資料庫連線語句SQL資料庫
- 一條簡單SQL語句的構成及語句解析SQL
- Oracle中SQL語句解析的步驟OracleSQL
- java連線oracle執行sql語句JavaOracleSQL
- Mybatis原始碼解析之執行SQL語句MyBatis原始碼SQL
- Oracle中SQL語句解析的步驟(轉)OracleSQL
- php連線mysql並執行sql語句PHPMySql
- SQL語句SQL
- SQL 查詢語句的執行順序解析SQL
- SQL語句的解析過程 遊標週期SQL
- GaussDB SQL查詢語句執行過程解析SQL
- sql語句大全SQL
- 共享SQL語句SQL
- SQL語句整理SQL
- SQL基本語句SQL
- 精妙Sql語句SQL
- SQL語句集合SQL
- oracle sql語句OracleSQL
- sql語句 求救!SQL
- SQL精妙語句SQL
- SQL語句收集SQL
- 常用SQL語句SQL
- sql常用語句SQL
- 【SQL】10 SQL UPDATE 語句SQL
- 【SQL】11 SQL DELETE 語句SQLdelete
- SQL 語句調優_減少或者避免笛卡爾乘積的發生SQL
- SQL Server中SELECT語句執行順序解析SQLServer
- 【SQL】9 SQL INSERT INTO 語句SQL
- Oracle SQL語句執行流程與順序原理解析OracleSQL
- 機房收費系統初體驗——SQL語句解析SQL
- 1.3. SQL 語句SQL
- Sql語句小整理SQL
- SQL語句優化SQL優化
- SQL SELECT 語句SQL
- SQL 語句學習SQL
- SQL語句IN的用法SQL