[英]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.