Azure SQL Server 与 Fabric Datawarehouse SQL Server 上的延迟

问题描述 投票:0回答:1

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 azure-service-fabric system.data
1个回答
0
投票

Azure SQL Server 是为 OLTP 工作负载构建的,因此它对于多个小型查询运行得更好。 Fabrick Warehouse 是为 OLAP 工作负载而构建的,对于较少数量的查询(每个查询聚合大量数据)来说将是一个更好的套件。

如果您的应用程序要运行许多小型查询,每次仅读取或更新几个表行,那么您应该坚持使用 Azure SQL 服务器。

© www.soinside.com 2019 - 2024. All rights reserved.