在Firebird 2.0中,在SELECT命令上使用顯式事務的速度要快於使用隱式事件執行命令嗎?Firebird 2.0事務SELECT性能
回答
所有的SQL命令(SELECT,INSERT,UPDATE等)只能在一些事務中執行。在事務之前,您無法運行一個命令。
通常事務會增加一些開銷。但是,如果在連接到Firebird時沒有啓動一些默認事務,則應該小心。
如果沒有事務,Firebird將無法執行SQL命令。 PS:如果您提交事務而不是回滾事務,則會獲得最佳性能結果。即使你只調用了SELECT,也沒有改變。
除了什麼已經說了,考慮到該交易可以是:
- 讀寫
- 只讀
對於SELECT這將是最好使用只讀事務
PS:還有其他類型的事務,但這兩個是這個主題的重要內容。
顯式和隱式事務是用於訪問數據庫的組件集的一個功能,而不是Firebird本身的功能。如前所述,Firebird 總是完成交易中的所有內容。這對你有幾點影響:
- 使用「隱式」事務不能比使用「顯式」事務更快,因爲從Firebird的角度來看,事務是事務,並不重要誰開始了它。
- 獲得最佳性能有時需要對「提交」進行良好控制。雖然「隱式」事務不可能比「顯式」事務更快,但顯式可能會更快,因爲您可以控制您的StartTransactions和Commits。雖然您通常希望在一個事務中對數據庫執行所有更新(因此它們全都成功或失敗),但有時您希望將操作拆分爲多個組:如果您需要批量插入多條記錄,則可能需要每1000條記錄提交一份。
Multam,Cosmine,si +1 pentru sfat。 – luvieere 2010-05-21 06:52:44
根據我的經驗,隱式事務傾向於默認爲自動提交保留,因此它們應該更慢。您始終可以更改默認行爲。
但我會建議使用明確的交易作爲提交保留可能會導致你的悲傷進一步下降,如果它阻止了太多的交易。如果確實如此,那麼訪問Firebird的速度可能會大幅減慢,因爲它會遍歷所有阻塞/阻塞事務以確定數據的正確值。
下面是一些關於它的討論
http://forums.devshed.com/firebird-sql-development-61/difference-active-transaction-863103.html
- 1. Firebird和實體框架事務回滾
- 2. Firebird客戶端與Firebird服務器的兼容性
- 3. Redis SELECT性能
- 4. SELECT COUNT(*)性能
- 5. SELECT * VS SELECT * LIMIT(性能)
- 6. Android sql事務性能
- 7. Java數據事務性能
- 8. MySQL事務性查詢是否可以提高多個SELECT語句的性能?
- 9. NHibernate和Firebird的性能問題
- 10. Firebird SQL:查找瓶頸/性能分析
- 11. Cakephp 2.0 Dropdown Select
- 12. Select語句性能
- 13. 與select的性能
- 14. Firebird ado.net動態sql:多個select語句可能嗎?
- 15. Firebird存儲過程中的「select..into」
- 16. 如何做一個firebird SP,SELECT * FROM「TABLE」?
- 17. oracle中select * vs select colname的性能
- 18. 多選select - Play 2.0?
- 19. EJB容器管理事務與Bean管理事務的性能
- 20. sm-level:1.3 vs 2.0性能
- 21. CLR 2.0 vs 4.0性能?
- 22. Selenium 2.0 IE Xpath性能
- 23. EclipsLink 2.0的性能瓶頸
- 24. 玩! 2.0性能指標
- 25. 事務範圍是否影響性能?
- 26. SQLite事務處理器性能問題
- 27. SQL Server 2005事務複製性能
- 28. UPDATE VS COUNT VS SELECT性能
- 29. MySQL SELECT查詢性能
- 30. Sql select查詢性能
這是令人困惑,因爲我與.NET火鳥供應商合作,它有一個FBCommand構造函數交易爲參數和另一個不包含的構造函數。此外,通過調用* dbcmd.BeginTransaction()*,在FBConnection實例中顯式執行事務之前,事務不會啓動。我測試了INSERT的速度,並且在使用事務時看到了顯着的改進,與使用沒有* transaction *參數的FBCommand相比。 – luvieere 2009-10-29 17:30:56
我編輯了問題以反映FBCommand的隱式和顯式事務模型。 – luvieere 2009-10-30 17:14:22
「我測試了INSERT的速度,並且在使用事務時看到了顯着的改進,與使用沒有事務參數的FBCommand相比。」 在後一種情況下,INSERT語句的每次執行都涉及內部事務的隱式開始和結束。這就是爲什麼它需要更長的時間。 – 2009-11-12 08:50:05