0

擁有的MySQL和MSSQL類似的中等複雜程度的存儲過程有人相比性能。我們有幾個我們已經遷移到Mysql的proc。與mssql計數器部分相比,那些運行速度相當慢。 可能有很多原因比較Mysql的程序和SQL服務器程序性能

  1. 硬件很差。 (RAM,DISK,SSD)
  2. MySQL服務器配置不當。
  3. Mysql Proc執行和優化非常慢。

MSSQL數據庫PROC是一個因素或快2-3倍。例如,具有1000行的proc在MSSql中需要2秒,在mysql中需要10秒。 你能幫我解釋爲什麼嗎?我們已經完成了proc源代碼的1對1轉換。

感謝

+0

首先,確認它,使得它更慢,不能查詢,索引等'CURSORs'是一個大的犯罪嫌疑人的SP。交易也是如此。而且,誰做了翻譯 - 有些是自動化的,或者是MySQL的新手,或者是MySQL的專家,但是他們可能不瞭解Mssql的細微之處? –

+0

「1對1的轉換」,試圖準確地複製'TOP','SEQUENCE','ROW_NUMBER'等。這些事情都更好地理解代碼的_intent_,然後實施_equivalent_功能完成時可能會特別糟糕。 –

+0

@RickJames多數民衆贊成在過去3個月做了什麼。但現在我正在調整mysql配置文件。讓我們看看錶現如何。 謝謝:) – abksharma

回答

-1

存儲過程會給你一個小的性能提升,但主要是他們這樣做,是很難或不可能做一個簡單的查詢任務。存儲過程對於簡化許多不同類型客戶端的數據訪問非常有用。數據庫管理員喜歡它們是因爲它們控制數據庫的使用方式,而不是將這些細節留給開發人員。

查找到索引和適當的表設計,以獲得更好的性能。

+0

MSsql數據庫過程更快一倍或2-3倍。例如,具有1000行的proc在MSSql中需要2秒,在mysql中需要10秒。你能幫我解決原因嗎? 我們已經完成了1對1的proc源代碼轉換。 – abksharma