最近在進行壓測專案時發現壓測結果很不理想,併發100的情況下響應時間達到2秒多,這對於需求來說是不能接受的,通過分析日誌發現有兩個表的select語句耗時很高,100-500ms之間,但是sql就是簡單的根據主鍵欄位去查詢,將sql拿出直接在plsql中執行還是很慢。
在生產環境執行同樣的sql耗時在幾十毫秒,差距明顯,切生產資料量級遠超壓測環境資料。繼而重建了幾個表的索引還是很慢,這麼簡單的sql沒想過分析執行計畫,看了一眼執行計畫發現查詢走的索引不對,沒有走主鍵索引,走了另外的乙個普通索引,問題鎖定。
接觸oracle資料庫時間不長,網上搜了下資料,有些說的過深不是很理解,試著分析了表:
analyze table tablename compute statistics
查詢時間明顯提高,看執行計畫是走了主鍵索引,問題解決。
關於表分析與索引分析可參考這篇文章:oracle-表分析和索引分析解讀。
查詢慢兩大招:建立索引與表分析。
SQL資料庫慢
之前在做mes的時候,出現過資料庫伺服器cpu衝100 好痛苦了一段時間,搞的現場作業回報速度慢,搞得現場老大總是搔嘮我。不過經過我的軟,硬的優化,現在穩定多了。輕鬆多了。回憶那段往事真是苦不堪言。只想對著太陽喊 日 好了,不多說了,現在就把有可能影響sql資料庫執行速度的進行彙總,給相關人員指個方...
Oracle資料庫中動態執行SQL
在oracle資料庫開發pl sql塊中我們使用的sql 靜態sql 在pl sql塊中使用的sql語句在編譯時是明確的,執行的是確定物件。動態sql 在pl sql塊編譯時sql語句是不確定的,如根據使用者輸入的引數的不同而執行不同的操作。1 跟據動態條件獲得資料集 定義游標 定義儲存過程 實現儲...
Oracle資料庫執行Sql指令碼的方法
1 cmd 命令視窗 sqlplus 連線資料庫 sql e 資料夾 sql 這樣就能執行sql指令碼了。ps sql檔案前面是 不是 plsql developer 檔案 開啟 sql指令碼 sqldeveloper 檔案 開啟 這兩個工具是這樣的,其他工具的操作大同小異。將以下內容寫入乙個sql...