繁体   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