练习 - 验证 Azure SQL 数据库
现在已了解 Azure SQL 在 SQL Server Management Studio (SSMS)中的显示方式,接下来可以验证部署。
验证部署
部署 SQL 实例后,通常会运行查询来验证部署。 在 Azure SQL 中,有些查询与 SQL Server 中的不同。 在此步骤中,你将了解哪些内容会更改 SQL Server、更改方式以及新增功能。
在本练习中,你将演练对系统函数、动态管理视图(DMV)和目录视图的一些常见查询,这些查询可在 SSMS 中部署后使用。 你将看到哪些任务与 SQL Server 的工作方式相同,哪些不同,哪些是 Azure SQL 的新增内容。
在 SSMS 中连接到你的 Azure SQL 数据库逻辑服务器(如果尚未连接)。
右键单击
AdventureWorks
数据库并选择“新建查询”。执行熟知的系统函数
@@VERSION
来检查你部署的版本。SELECT @@VERSION
结果看起来与 SQL Server 有点不同。 可以说此服务器是没有版本的 Azure SQL。 Azure SQL 数据库包含与 SQL Server 最新版本一致的最新更改。 但是,使用系统函数
@@VERSION
是用于验证是否可“查询”SQL Server 的常用方法。根据返回的数字确定 Azure SQL 部署的特定类型:
- 1:个人或桌面引擎
- 2:标准
- 3:企业版
- 4:Express
- 5:SQL 数据库
- 6:SQL 数据仓库
- 8:SQL 托管实例
运行以下 T-SQL 命令,查看是否获得预期结果。
SELECT SERVERPROPERTY('EngineEdition');
结果为 5,这是合理的,因为你部署的是 Azure SQL 数据库,而不是 SQL 托管实例或 SQL Server Enterprise。 Azure 虚拟机中没有用于 SQL Server 的特殊数字。 该数字对应于你在虚拟机中安装的版本。 Personal 或 Desktop Engine 是早期版本,不再与 SQL Server 一起使用。
检查目录视图
sys.databases
和sys.objects
。 通常,你可查看这些视图,验证系统数据库的安装和状态,并检查数据库中的系统对象。SELECT * FROM sys.databases; SELECT * FROM sys.objects;
在第一个结果集中,未列出系统数据库
msdb
、tempdb
和model
。 仅列出master
和用户数据库。master
逻辑服务器中的数据库与随 SQL Server 一起安装的物理master
数据库不同。 在 Azure SQL 托管实例中,你将看到与任何 SQL Server 实例相同的常规系统数据库集。但是,
sys.objects
看起来与常规 SQL Server 实例类似。 示例AdventureWorksLT
数据库的系统表、内部表和用户对象都是如此。鉴于你使用了两个 vCore 模型进行部署,请验证所有计划程序是否都处于联机状态以及你是否在检测预期的可用 CPU。
SELECT * FROM sys.dm_os_schedulers where STATUS = 'VISIBLE ONLINE';
如果有 2 个 vCore 可用于部署了 SQL 数据库的 SQL Server 实例,则两个
VISIBLE ONLINE
计划程序就是你所期望的结果。对于 SQL Server 部署,通常可查看 DMV(如
sys.dm_process_memory
)来了解 CPU、内存和辅助角色的限制。 Azure SQL 数据库不支持此 DMV,因为用户不会公开或控制支持该数据库的主机的详细信息。 可以使用 DMVsys.dm_user_db_resource_governance
来查看已部署 SQL 数据库的容量和限制。 还可使用 Azure SQL 托管实例中的sys.dm_instance_resource_governance
。运行并查看以下查询结果。 将结果与你的已部署层记录的定价层和限制进行比较。
slo_name
是服务级别目标 (SLO),其中指出了部署选项、服务层、硬件和计算量。 此外,由于 Azure SQL 数据库使用 Windows 作业对象来实施其他资源限制(如内存),因此可以使用sys.dm_os_job_object
DMV 查看可用于部署的资源。SELECT * FROM sys.dm_user_db_resource_governance;
查看 SQL Server 部署的常用方法是检查活动请求列表。 与 SQL Server 一样,也可使用
sys.dm_exec_requests
来查看当前正在运行的 SQL 请求。SELECT * FROM sys.dm_exec_requests;
将
sys.dm_exec_requests
用于 Azure SQL 数据库与将其用于 SQL Server 或 SQL 托管实例是不同的。 此 DMV 只显示与你的数据库相关的活动请求,包括后台任务或没有显示为master
的数据库上下文的后台任务。 此行为是因为 Azure SQL 数据库部署的性质。