我的Grails應用程序中有一個表,它的增長量相當大 - 100,000行左右,每天增長大約10,000行。我注意到隨着表的增長,插入逐漸變慢。我認爲這與我的索引有關。解決這個問題的最好方法是什麼?防止逐漸減慢的行插入的最佳方式,因爲Grails中的表增長更快
0
A
回答
2
是的可能是索引,但通常最大的打擊是因爲休眠會話膨脹出來,描述得很好Ted Naleid。如果這不起作用,你告訴我們更多關於你的情況是你做批量插入還是你的網站從不同的請求等獲得10000插入?
我解決此得到了由具有被稱爲每隔一段時間特德提出了一種簡單的方法(例如,每1000行插入)
def cleanUpGorm() {
def session = sessionFactory.currentSession
session.flush()
session.clear()
propertyInstanceMap.get().clear()
}
+0
您應該澄清,此方法僅適用於批量插入的情況。 –
0
你首先要確定它是否是一個DB的問題或Grails的/休眠問題;我將首先輸出Hibernate在Datasource.groovy
中生成的SQL,然後查看是否有任何異常情況發生。您還可以使用數據庫供應商提供的各種SQL分析工具來查看正在進行的操作;例如,您可以從SQL中生成一個EXPLAIN PLAN
,以查看插入是否由於沒有正確的索引而變得很慢。
當談到處理性能問題時,您需要深入研究並找出原因的具體證據,其他一切只是猜測。
相關問題
- 1. 逐漸增長的iframe onclick
- 2. 逐漸減慢循環?
- 3. 逐漸減慢球的運動
- 4. 最佳的插入方式
- 5. 防止CGAffineTransform逐漸應用
- 6. Base64編碼逐行更快的方式
- 7. MySQL更新逐漸變慢
- 8. 如何逐漸減慢旋轉動畫
- 9. Grails防止重複插入
- 10. CodeIgniter中防止SQLInjection的最佳方法
- 11. 在表格增長後優化MySQL操作的最佳方式
- 12. 爲什麼Opened_tables快速增長以及如何減慢速度?
- 13. 逐漸增加的線Raphael.js
- 14. 逐漸增加表格的高度
- 15. MySQL逐漸衰減......?
- 16. 訂單的增長速度從最慢到最快
- 17. 最佳方式將其插入MySQL的
- 18. 插入新值的最佳方式
- 19. 如何防止逐漸顯示頁面?
- 20. 插入多行的最快方法
- 21. 反覆插入行的最快方法?
- 22. 防止DocumentEvent循環的最佳方法?
- 23. 逐漸減慢輪詢請求的算法
- 24. 什麼是添加增量遞減函數的最佳方式
- 25. 支持模板類遞增和遞減的最佳方式
- 26. 運行長PDO插入語句的更快方法?
- 27. 在SqlDataAdapter中防止SQL注入的最佳方法
- 28. 在ADO.Net Datatable中防止注入的最佳方法?
- 29. 從列表交互中插入數據的最佳方式
- 30. VC++中Progressbar的逐漸增加
發佈你的領域類,我們可能會幫助你(特別是'映射'閉包)。 –