Azure SQL Server 与 Fabric 数据仓库 SQL Server
我正在将应用程序的数据源从 Azure SQL Server 移动到 Fabric 数据仓库。 然而,这两个平台上的延迟似乎存在巨大差异。
我编写了一个小测试程序来运行一些测试。基本上,只需 1000 次往返服务器即可执行一条小型 T-SQL 语句并记录所用时间。
我的 Azure SQL Server 位于“西欧”,而我的 Fabric Datawarehouse SQL Server 位于“北欧”。
我有两个 Azure VM,一个位于“西欧”,另一个位于“北欧”。
从西欧的客户那里运行:
Azure SQL Server = 2 秒
Fabric SQL Server = 27 秒
从北欧客户那里运行:
Azure SQL Server = 17 秒
Fabric SQL Server = 17 秒
因此,一切都符合预期(就延迟而言,客户端程序所在的位置至关重要),除了即使我的测试程序从与 Fabric 数据仓库位于同一区域(北欧)的虚拟机运行时,Fabric 查询也需要 17 秒在这种情况下)。
SQL 本身:“SELECT 'Hello World'” 在两者上执行的时间不应超过一纳秒(或两纳秒),因此差异必须是延迟。 而且我真的不明白为什么差异会那么大。 Fabric 方面有什么可以调整的吗?有人吗?
我的测试程序非常简单
Dim CurrConnection = New SqlConnection(SQL_CONNECTION_STRING)
With CurrConnection
.Open()
Dim SCommand As New SqlClient.SqlCommand
With SCommand
.Connection = CurrConnection
Console.WriteLine("----------------------------CONNECTING TO SQL RUNNING 1000 HOOPS --------------------------------------------------------")
Debug.Print(Now().ToString)
Console.WriteLine(Now().ToString)
For i = 1 To 1000
.CommandText = "SELECT 'Hello World From SQL SERVER'"
Dim p As Object = .ExecuteScalar()
If i Mod 100 = 0 Then
Console.WriteLine(i & " - " & p.ToString)
End If
Next
End With
.Close()
End With
Console.WriteLine(Now().ToString)
Console.WriteLine("----------------------------FINSH CONNECTING TO SQL RUNNING 1000 CALL--------------------------------------------------------")
Tnx 佩洛维
Azure SQL Server 是为 OLTP 工作负载构建的,因此它对于多个小型查询运行得更好。 Fabrick Warehouse 是为 OLAP 工作负载而构建的,对于较少数量的查询(每个查询聚合大量数据)来说将是一个更好的套件。
如果您的应用程序要运行许多小型查询,每次仅读取或更新几个表行,那么您应该坚持使用 Azure SQL 服务器。