2017-08-14 17 views
0

我有以下異常:最大池大小VS在Azure的SQL數據庫的併發登錄

超時過期。在從池中獲取連接之前已超時。發生這種情況的原因可能是因爲所有連接池都在使用中,並且達到最大池大小。

我已指定最大池大小爲500.如果我的計劃支持的最大concurnt登錄次數較少,它會失效嗎?所以,如果我使用S1計劃並且僅支持90個併發登錄。

即使最大池大小爲500,第91次登錄也會導致web api停止工作。我有一個服務在近500個設備上運行,它調用了這個azure web api(其中我設置了最大池大小爲500) 。這個web api連接到azure DB。請幫助我理解。

回答

3

您的Azure SQL數據庫計劃規定了最大併發登錄和會​​話。你不能從你的應用程序中覆蓋這個地方。原因是當您創建數據庫併爲其制定計劃時,Microsoft需要爲您的數據庫提供最低性能標準。因此,他們需要確保Azure內部的底層SQL服務器上有足夠的空間來處理此問題。如果您在應用程序方面進行更改,Microsoft將無法準確預測性能。

您將需要轉到支持併發登錄次數的更高數據庫層,或者需要使用新功能Elastic Pools,該功能允許您配置數據庫以根據需要動態擴展,然後縮減下。根據您的情況,這可能會更便宜,然後只需轉到更高的數據庫層。

+0

謝謝你的病毒風暴。但是我只有一個Azure DB,所以在我的情況下彈性池會有好處?當有多個數據庫時,我閱讀它的好處 –

+0

該功能是爲多租戶應用程序設計的,可防止單個租戶佔用過多的DTU。我認爲它可以適用於你的情況,但我不能100%確定,因爲我對數據庫和應用程序體系結構不夠了解。 – virusstorm