练习 - 配置 Azure SQL 数据库

已完成

你现在已看到 Azure 门户、SQL Server Management Studio (SSMS) 和 Azure Data Studio 中的 SQL 笔记本。 可以使用其他工具来管理 Azure SQL。 最常用的两个工具是 Azure CLI 和 Azure PowerShell。 它们在功能上相似。 此活动侧重于 Azure CLI。

要完成此活动,可使用 PowerShell 笔记本,它与 SQL 笔记本的概念相同,但编码语言为 PowerShell。 可以通过 PowerShell 笔记本来利用 Azure CLI 或 Azure PowerShell。 本文重点介绍 Azure CLI 命令。 对于这两种工具,还可使用 Azure Cloud Shell,这是一个交互式 Shell 环境,可通过浏览器在 Azure 门户中使用。

本练习使用 Cloud Shell。 它已经包含 Azure CLI 和 Azure PowerShell 模块。

与 Azure Cloud Shell 和 Azure CLI 连接

在下面的示例中,你将了解在 Azure SQL 中使用不同连接策略的延迟效果。

通过 Cloud Shell 运行所有命令。 你可轻松复制这些命令,然后选择 Shift+Insert 将其粘贴到终端。

注意

在 PowerShell 中,可以通过 Azure Cloud Shell 使用 PowerShell Az 模块或 Azure CLI。 在此活动中,我们将了解 Azure CLI,但 PowerShell Az 模块也提供类似的命令。

  1. 如果出现提示,请转到 shell.azure.com 并登录到你的 Azure 帐户。

  2. 由于可配置默认资源组和 Azure SQL 数据库逻辑服务器,因此不必使用每个 az 命令来指定它们。 运行以下命令以设置一些变量。 将 <resource-group><your-server> 替换为在上一个练习中创建 SQL 实例时使用的值。

    resourceGroup="<resource-group>"
    logical_server="<your-server>"
    databaseName="AdventureWorks"
    
  3. 在 Cloud Shell 中设置默认值,以指定默认资源组和 Azure SQL 数据库逻辑服务器:

    az configure --defaults group=$resourceGroup sql-server=$logical_server
    
  4. 运行以下命令以确认已设置默认值:

    az configure --list-defaults
    
  5. 运行以下命令以显示 Azure SQL 数据库逻辑服务器中的所有数据库:

    az sql db list
    
  6. 数据库列表包含很多信息。 如果只想查看 AdventureWorks 数据库的详细信息,请运行以下命令:

    az sql db show --name $databaseName
    
  7. 运行以下命令,确定数据库大小和使用情况:

    az sql db list-usages --name $databaseName
    

这些示例使用 az sql db 命令。 还有一些与 Azure SQL 数据库逻辑服务器相关的命令。 它们属于 az sql server

az sql miaz sql midb 也有类似的命令。 这些命令是用于托管实例中的数据库(有时称为托管数据库)的命令。

要详细了解所有可用命令,请参阅 Azure CLI 文档

使用 Azure CLI 管理连接策略

可能会使用 Azure CLI 或 Azure PowerShell 命令来完成的一项操作包括更新连接策略。 此更新用作示例,演示如何使用 Azure CLI 之类的工具来管理 Azure SQL。 在此示例中,你将了解 Azure SQL 数据库及其用于管理连接策略的命令。 实现在 Azure SQL 托管实例中相似。

  1. 使用 Azure CLI 发现当前策略。

    az sql server conn-policy show
    

    结果显示连接类型为 Default

  2. 将连接策略设置为 Proxy 并确定往返时间。

    # update policy
    az sql server conn-policy update --connection-type Proxy
    # confirm update
    az sql server conn-policy show
    
  3. 若要测试往返时间,请使用 SSMS 进行连接。 在设备上,打开 SSMS 并连接到数据库。 右键单击该数据库并选择“新建查询”。 使用以下文本创建一个新查询,然后选择“查询”>“包括客户端统计信息”。 在结果中,“服务器应答等待时间”是网络延迟的最佳指标。 可多运行几次该查询,然后取平均值。

    -- Proxy
    SELECT * FROM SalesLT.Product
    GO 10
    

    经过 10 次试验,服务器应答的平均等待时间可能类似于 46.6000。 根据你的 Internet 连接,结果可能有所不同。 记下观察到的时间。

  4. 如果想要全部设置为 Redirect,从而尝试降低延迟,该怎么做?

    对于 Azure 之外的部分,需要允许 11000 到 11999 范围内的端口上的入站和出站通信。 Redirect 连接策略需要打开这些端口。

    备注

    这可能已在本地设备上进行配置。 如果在后续步骤中遇到错误,则可能需要启用前面提到的端口。 有关详细信息,请参阅用于 ADO.NET 4.5 的非 1433 端口

    使用以下两个命令来更新连接策略并确认该更新。

    # update policy
    az sql server conn-policy update --connection-type Redirect
    # confirm update
    az sql server conn-policy show
    
  5. 若要测试 Redirect 策略的网络延迟,请连接到本地设备上的 SSMS。 通过使用以下文本新建一个查询,然后为结果选择“包括客户端统计信息”。 将“服务器应答等待时间”与 Proxy 的查询进行比较。

    -- Redirect
    SELECT * FROM SalesLT.Product
    GO 10
    

    经过 10 次试验,服务器应答的平均等待时间可能约为 25.8000,此时间大约是代理连接策略时间的一半。 确切的时间根据连接而异。 与前面的代理测试相比,时间应该显著减少。

  6. 使用以下命令将策略设置回默认值,以供下一练习使用:

    # update policy
    az sql server conn-policy update --connection-type Default
    # confirm update
    az sql server conn-policy show
    

重定向的速度更快,因为在初次连接之后,可绕过网关直接转到数据库。 绕过意味着跃点更少,从而降低延迟。 降低延迟最终有助于防止瓶颈,这对于聊天型应用程序尤其重要。 在性能模块中,你将详细了解如何改进和优化性能。