簡體   English   中英

Azure SQL 服務器所需時間是本地 SQL 服務器的 10 倍

[英]Azure SQL Server takes 10 times as long as a on-premise SQL Server

我有一個 Visual Studio VB.NET 項目,它基本上對數據庫運行大量查詢。

將數據庫從本地本地 SQL 服務器移動到 Azure SQL 后,性能顯着下降。

當然會慢一些。 但它慢了 10 倍……延遲當然是這里的問題。

有什么方法可以提高速度嗎? 連接字符串或命令 object 中有什么“智能”?

我無法更改項目的“架構”(無法控制)。 必須有很多(5000+)個小查詢返回一個值(當時運行一個)。

這是我的意思的一個例子。 在“本地”SQL 服務器上運行它需要 10 秒 - 在 Azure 中,需要 200 秒:

Dim Server As String = "AZURE.poweranalyzedevazuretest.database.windows.net"
Dim User As String = "*****"
Dim password As String = "******!"
Dim PRODUCTIONDATABASE As String = "MYDB"

Dim SQL_CONNECTION_STRING As String = "Server=" & Server & "; Database=" & PRODUCTIONDATABASE & "; User Id=" & User & "; Password=" & password & ";"

Dim SDataSet = New DataSet
Dim SDataAdapter = New SqlClient.SqlDataAdapter
Dim SCommand As New SqlClient.SqlCommand
Dim CurrConnection = New SqlConnection(SQL_CONNECTION_STRING)
CurrConnection.Open()
Debug.Print(Now().ToString)

For i = 1 To 1000
    SCommand.Connection = CurrConnection
    SCommand.CommandText = "SELECT 'Hello World'"
    Dim p As Object = SCommand.ExecuteScalar()
Next

CurrConnection.Close()
Debug.Print(Now().ToString)

/perove

我針對本地 SQL 服務器實例運行了您的代碼,它運行時間不到 1 秒。 針對 Azure SQL 數據庫(基本層)的相同代碼在 60 秒內運行。 該測試測量的是網絡延遲而不是數據庫性能。

我希望在 Azure 中運行代碼,尤其是在與數據庫相同的區域中,將提供與在本地運行兩者相當的性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM