獲取並在 Google BigTables(和其他集成數據庫)上進行性能測試
有哪些有效的方法可以對數據庫操作執行程序化性能測試,尤其是在數據庫本身不提供專用工具的環境中?
例如,在 Google App Engine 中,整個頁面載入被評估為一個可能包括特定數據庫操作的操作。這個問題也可能出現在 SQLite 和其他集成數據庫中。由於很難完全抽象需要測試的(等效的)選擇和插入,是否有推薦的數據庫工具來對這些類型的查詢執行更徹底的診斷?
在我看來,您的問題是您正在嘗試測試底層數據庫中沒有得到很好支持的性能指標。這使得跨系統比較性能變得非常困難,因為底層方法非常不同。我認為不可能進行蘋果對蘋果的比較,就像我認為你不能對 ORDBMS 類型方法與 RDBMS 類型方法進行蘋果對蘋果的比較一樣。性能問題太不同了,如果 Stonebraker 是正確的,為 TPC-C 測試優化 ORDBMS 沒有抓住重點,那麼對於相距更遠的系統來說,這將是不可能的。(不過,我認為他就在那裡,只是在 ORDBMS 功能發揮作用的地方。)
我認為你需要誠實的是看看你將如何使用每個系統並根據你對每個系統採取的方法建構一個基準工具。然後,您至少可以針對該工作流程說基準顯示了特定的內容。但是,我看不出您如何概括。您可以在分析器中進一步執行它,以獲得有關在各種引擎上測試執行所花費時間的更多資訊。
然而,在最好的情況下,數據庫基準測試很難變得有意義,並且當您比較不同的系統時,它變得不可能一概而論。
Appstats是衡量 App Engine 性能的關鍵工具。它將以圖形圖表的形式顯示每個 RPC 使用的時間,包括數據儲存、記憶體記憶體、urlfetch 和郵件請求。通常,請求顯示為“階梯”,其中每個請求從前一個請求結束的點開始,在下一行。
如果您使用 ndb 中的高級非同步請求,您實際上可以看到請求是並行發生的。
這個工具對我了解時間花在哪里以及如何優化查詢方面提供了巨大幫助。