练习 - 配置 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 模块也提供类似的命令。
如果出现提示,请转到 shell.azure.com 并登录到你的 Azure 帐户。
由于可配置默认资源组和 Azure SQL 数据库逻辑服务器,因此不必使用每个
az
命令来指定它们。 运行以下命令以设置一些变量。 将<resource-group>
和<your-server>
替换为在上一个练习中创建 SQL 实例时使用的值。resourceGroup="<resource-group>" logical_server="<your-server>" databaseName="AdventureWorks"
在 Cloud Shell 中设置默认值,以指定默认资源组和 Azure SQL 数据库逻辑服务器:
az configure --defaults group=$resourceGroup sql-server=$logical_server
运行以下命令以确认已设置默认值:
az configure --list-defaults
运行以下命令以显示 Azure SQL 数据库逻辑服务器中的所有数据库:
az sql db list
数据库列表包含很多信息。 如果只想查看
AdventureWorks
数据库的详细信息,请运行以下命令:az sql db show --name $databaseName
运行以下命令,确定数据库大小和使用情况:
az sql db list-usages --name $databaseName
这些示例使用 az sql db 命令。 还有一些与 Azure SQL 数据库逻辑服务器相关的命令。 它们属于 az sql server。
az sql mi 和 az sql midb 也有类似的命令。 这些命令是用于托管实例中的数据库(有时称为托管数据库)的命令。
要详细了解所有可用命令,请参阅 Azure CLI 文档。
使用 Azure CLI 管理连接策略
可能会使用 Azure CLI 或 Azure PowerShell 命令来完成的一项操作包括更新连接策略。 此更新用作示例,演示如何使用 Azure CLI 之类的工具来管理 Azure SQL。 在此示例中,你将了解 Azure SQL 数据库及其用于管理连接策略的命令。 实现在 Azure SQL 托管实例中相似。
使用 Azure CLI 发现当前策略。
az sql server conn-policy show
结果显示连接类型为
Default
。将连接策略设置为
Proxy
并确定往返时间。# update policy az sql server conn-policy update --connection-type Proxy # confirm update az sql server conn-policy show
若要测试往返时间,请使用 SSMS 进行连接。 在设备上,打开 SSMS 并连接到数据库。 右键单击该数据库并选择“新建查询”。 使用以下文本创建一个新查询,然后选择“查询”>“包括客户端统计信息”。 在结果中,“服务器应答等待时间”是网络延迟的最佳指标。 可多运行几次该查询,然后取平均值。
-- Proxy SELECT * FROM SalesLT.Product GO 10
经过 10 次试验,服务器应答的平均等待时间可能类似于
46.6000
。 根据你的 Internet 连接,结果可能有所不同。 记下观察到的时间。如果想要全部设置为
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
若要测试
Redirect
策略的网络延迟,请连接到本地设备上的 SSMS。 通过使用以下文本新建一个查询,然后为结果选择“包括客户端统计信息”。 将“服务器应答等待时间”与Proxy
的查询进行比较。-- Redirect SELECT * FROM SalesLT.Product GO 10
经过 10 次试验,服务器应答的平均等待时间可能约为
25.8000
,此时间大约是代理连接策略时间的一半。 确切的时间根据连接而异。 与前面的代理测试相比,时间应该显著减少。使用以下命令将策略设置回默认值,以供下一练习使用:
# update policy az sql server conn-policy update --connection-type Default # confirm update az sql server conn-policy show
重定向的速度更快,因为在初次连接之后,可绕过网关直接转到数据库。 绕过意味着跃点更少,从而降低延迟。 降低延迟最终有助于防止瓶颈,这对于聊天型应用程序尤其重要。 在性能模块中,你将详细了解如何改进和优化性能。