我對數據庫相當陌生,並且一直困擾着這個問題。我想我只需要指導如何開始解決這類問題。在oracle中導致高延遲導致多次寫入同一張表
我有一個web服務器設置爲非常頻繁地接收數據並將其寫入oracle數據庫。
服務器需要能夠接收每個用戶多行數據(每10秒約30-100個,偶爾有1000個行的卡塊,當有積壓時)。
從測試應用程序,它看起來像試圖擴大用戶數量時有一個瓶頸。我懷疑我只是採取了錯誤的方式與我如何編寫查詢/表結構。
使用100-150個用戶進行測試會使我的響應時間呈線性增長(20分鐘後可達800秒!)。
我的印象是每個有數據塊的請求都要排隊,每個oracle進程每個都寫一個,對嗎?這是由於表被鎖定?
數據全部寫入到一個表中,並且每個'行'正在輸入一個查詢。所以如果我有30行數據它需要運行30個插入。
嘗試提高性能時最好嘗試什麼?
- 會有多個表格有幫助嗎?
- 有沒有辦法一次寫多行,這可能有助於?
可能是一個長鏡頭,但希望有人能幫助/碰到過類似的問題。
謝謝。
「*它需要運行30個插入*」 - 我希望你做在一個事務中的30個插件(例如,通過禁用自動提交,只提交*一次* 30個插入後) –
你的Oracle版本是什麼? –
你的web框架也是什麼。 –