當前位置:首頁 » 服務存儲 » 存儲過程的執行時間長短
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

存儲過程的執行時間長短

發布時間: 2022-10-17 14:07:44

㈠ 我想請教一下,一個存儲過程執行時需要30ms,這樣的存儲過程失敗嗎

如果你的應用場景要求這個存儲過程的運行時間要小於30ms,那它可以說是不成功的,需要繼續優化。
如果時間上沒有要求,能達到應用要求,那就是成功的。

判斷產品的成與敗要根據不同場景和需求而定。角度不同,判斷結果也不同

㈡ 為什麼存儲過程執行速度比普通的sql快而且減少網路流量

存儲過程所以快是因為他是預先編譯的,當然節省了編譯的時間。減少網路流量是指減少與客戶端之間的交互,在伺服器上執行運算,最後只把結果反給客戶端,所以流量少。

比如你查詢個內容,需要先查一個表,根據結果再查另外一個表。不用存儲過程你怎麼做呢?自然是先讀出那個表的內容來,然後在asp/asp.net/php里,用代碼生成一個語句再去查詢,這樣要往復2,3次。而用存儲過程就可以直接在伺服器上運算,只要一次來回就ok了,自然網路流量就減少

因為在存儲過程中的SQL語句是已經經過了語法檢查和編譯的,可以直接執行;而SQL總要先進行語法解析和編譯才能執行。另外對於網路執行的話,執行相同的任務,客戶端調用存儲過程的代碼傳輸量和直接執行SQL語句相比也要更少。

㈢ 怎麼查看存儲過程的大致運行時間

單擊「開始→運行」,輸入「cmd」後回車,打開命令提示符窗口。輸入「systeminfo」並回車,稍等一會兒就會看到有關自己操作系統的一個摘要,其中有一行為「系統啟動時間」,後面的時間單位也精確到秒.

㈣ sql存儲過程耗時太長

多長都有可能,40是很正常的。
1.盡量優化語句,盡量少用游標。
2.修改較為常用的表要注意,最好先在臨時表中作好運算和其它處理,最後在修改這些表,以免較慢的存儲過程長時間鎖定表記錄,影響數據正常使用。
3.將連接超時和命令超時適當擴大,以免超時錯誤。

㈤ sql server執行存儲過程第一次時間長的原因是

和內存沒關系
sql server存儲過程第一次執行需要分析器分析、優化並生成執行計劃,執行計劃會被緩存起來,第二次直接使用,當然快了
類似問題看看查詢的計劃就明白了

㈥ mysql 存儲過程執行太慢怎麼優化

1.當我們請求mysql伺服器的時候,MySQL前端會有一個監聽,請求到了之後,伺服器得到相關的SQL語句,執行之前(虛線部分為執行),還會做許可權的判斷
2.通過許可權之後,SQL就到MySQL內部,他會在查詢緩存中,看該SQL有沒有執行過,如果有查詢過,則把緩存結果返回,說明在MySQL內部,也有一個查詢緩存.但是這個查詢緩存,默認是不開啟的,這個查詢緩存,和我們的Hibernate,Mybatis的查詢緩存是一樣的,因為查詢緩存要求SQL和參數都要一樣,所以這個命中率是非常低的(沒什麼卵用的意思)。
3.如果我們沒有開啟查詢緩存,或者緩存中沒有找到對應的結果,那麼就到了解析器,解析器主要對SQL語法進行解析
4.解析結束後就變成一顆解析樹,這個解析樹其實在Hibernate裡面也是有的,大家回憶一下,在以前做過Hibernate項目的時候,是不是有個一個antlr.jar。這個就是專門做語法解析的工具.因為在Hibernate裡面有HQL,它就是通過這個工具轉換成SQL的,我們編程語言之所以有很多規范、語法,其實就是為了便於這個解析器解析,這個學過編譯原理的應該知道.
5.得到解析樹之後,不能馬上執行,這還需要對這棵樹進行預處理,也就是說,這棵樹,我沒有經過任何優化的樹,預處理器會這這棵樹進行一些預處理,比如常量放在什麼地方,如果有計算的東西,把計算的結果算出來等等...
6.預處理完畢之後,此時得到一棵比較規范的樹,這棵樹就是要拿去馬上做執行的樹,比起之前的那棵樹,這棵得到了一些優化
7.查詢優化器,是MySQL裡面最關鍵的東西,我們寫任何一條SQL,比如SELECT * FROM USER WHERE USERNAME = toby AND PASSWORD = 1,它會怎麼去執行?它是先執行username = toby還是password = 1?每一條SQL的執行順序查詢優化器就是根據MySQL對數據統計表的一些信息,比如索引,比如表一共有多少數據,MySQL都是有緩存起來的,在真正執行SQL之前,他會根據自己的這些數據,進行一個綜合的判定,判斷這一次在多種執行方式裡面,到底選哪一種執行方式,可能運行的最快.這一步是MySQL性能中,最關鍵的核心點,也是我們的優化原則.我們平時所講的優化SQL,其實說白了,就是想讓查詢優化器,按照我們的想法,幫我們選擇最優的執行方案,因為我們比MySQL更懂我們的數據.MySQL看數據,僅僅只是自己收集到的信息,這些信息可能是不準確的,MySQL根據這些信息選了一個它自認為最優的方案,但是這個方案可能和我們想像的不一樣.
8.這里的查詢執行計劃,也就是MySQL查詢中的執行計劃,比如要先執行username = toby還是password = 1
9.這個執行計劃會傳給查詢執行引擎,執行引擎選擇存儲引擎來執行這一份傳過來的計劃,到磁碟中的文件中去查詢,這個時候重點來了,影響這個查詢性能最根本的原因是什麼?就是硬碟的機械運動,也就是我們平時熟悉的IO,所以一條查詢語句是快還是慢,就是根據這個時間的IO來確定的.那怎麼執行IO又是什麼來確定的?就是傳過來的這一份執行計劃.(優化就是制定一個我們認為最快的執行方案,最節省IO,和執行最快)
10.如果開了查詢緩存,則返回結果給客戶端,並且查詢緩存也放一份。

㈦ sqlserver怎麼限制一個存儲過程或一條語句的執行時間

我覺得超時對於連接來說,也是一種異常,正常情況下,連接異常就回滾操作,關閉連接就好了

至於資料庫連接的建立,那是資料庫連接池做的工作呀,不影響的

㈧ 面試官問執行存儲過程需要多久,該怎麼回答啊

回答:
存儲過程的執行時間,要看過程體內各個事務執行操作的時間,以及過程體本身邏輯的復雜程度。另外還要看過程體中所操作的對象的數量級,操作對象數量多需要的時間長,操作對象數量少需要的時間短。

㈨ 存儲過程第一次執行耗時30分鍾,第二次開始每次耗時不到3分鍾,這是什麼原因

sql是高級語言,資料庫系統執行sql之前要將sql語句進行解析(相當於編譯),這個過程叫硬解析;資料庫系統每次執行sql之前都會檢查共享池中是不是存在已經解析過的語句,如果有就拿來直接用,這叫軟結息。軟解析比硬解析效率高,這是影響因素之一;
二、第一次執行可能沒有走索引,第二次執行使用第一次執行的執行計劃
三、看你的存儲過程做了些什麼,有可能第一次把活幹完了,導致第二次執行沒什麼活干
以上回答基於oracle體系結構