연습 - Azure SQL Database 확인
이제 Azure SQL이 SSMS(SQL Server Management Studio)에 표시되는 방식을 살펴보았으므로 배포를 확인할 수 있습니다.
배포 확인
SQL의 인스턴스를 배포한 후에 일반적으로 배포를 확인하는 쿼리를 실행합니다. Azure SQL에서 관련 쿼리 중 일부는 SQL Server와 다릅니다. 이 단계에서는 SQL Server의 변경 내용, 변경 방법 및 새로운 항목을 확인합니다.
이 연습에서는 SSMS에서 배포한 후 사용할 수 있는 시스템 함수, DMV(동적 관리 뷰) 및 카탈로그 뷰에 대한 몇 가지 일반적인 쿼리를 살펴봅니다. SQL Server와 동일하게 작동하는 항목, 그렇지 않은 항목 및 Azure SQL의 새로운 항목이 표시됩니다.
아직 연결하지 않은 경우 SSMS에서 Azure SQL Database 논리 서버에 연결합니다.
AdventureWorks
데이터베이스를 마우스 오른쪽 단추로 클릭하고 새 쿼리를 선택합니다.잘 알려진 시스템 함수
@@VERSION
을 실행하여 배포한 버전을 확인합니다.SELECT @@VERSION
결과는 SQL Server와 약간 다르게 보입니다. 이 서버가 버전이 없는 Azure SQL임을 알 수 있습니다. Azure SQL Database에는 SQL Server의 최신 릴리스와 비슷한 최신 변경 내용이 포함되어 있습니다. 하지만 시스템 함수
@@VERSION
을 사용하는 것은 SQL Server를 “쿼리”할 수 있는지 확인하는 일반적인 방법입니다.반환된 숫자를 기준으로 특정 유형의 Azure SQL 배포를 결정할 수 있습니다.
- 1: 개인 또는 데스크톱 엔진
- 2: 표준
- 3: Enterprise
- 4: Express
- 5: SQL Database
- 6: SQL Data Warehouse
- 8: SQL Managed Instance
다음 T-SQL 명령을 실행하여 예상 결과가 표시되는지 확인합니다.
SELECT SERVERPROPERTY('EngineEdition');
결과는 5이며, SQL Managed Instance 또는 SQL Server Enterprise가 아닌 Azure SQL Database를 배포했으므로 해당 값은 적합합니다. Azure Virtual Machines에는 특별한 SQL Server용 숫자가 없습니다. 이 숫자는 가상 머신에 설치한 버전에 해당합니다. 개인용 또는 데스크톱 엔진은 SQL Server에서 더 이상 사용되지 않는 레거시 버전입니다.
카탈로그 뷰
sys.databases
및sys.objects
를 살펴보겠습니다. 일반적으로 이 뷰를 통해 시스템 데이터베이스의 설치 및 상태를 확인하고 데이터베이스의 시스템 개체를 확인합니다.SELECT * FROM sys.databases; SELECT * FROM sys.objects;
첫 번째 결과 집합에서는 시스템 데이터베이스
msdb
,tempdb
,model
이 나열되지 않습니다.master
및 사용자 데이터베이스만 나열됩니다. 논리 서버의 데이터베이스는master
SQL Server와 함께 설치된 실제master
데이터베이스와 다릅니다. Azure SQL Managed Instance에는 SQL Server 인스턴스와 마찬가지로 일반적인 시스템 데이터베이스 집합이 표시됩니다.그러나
sys.objects
는 일반적인 SQL Server 인스턴스와 비슷하게 보입니다. 이는 샘플AdventureWorksLT
데이터베이스의 시스템 테이블, 내부 테이블, 사용자 개체에서 동일합니다.2-vCore 모델을 사용해 배포했다는 점을 고려하여 모든 스케줄러가 온라인 상태이고 예상되는 사용 가능한 CPU를 검색하고 있는지 확인하세요.
SELECT * FROM sys.dm_os_schedulers where STATUS = 'VISIBLE ONLINE';
두 개의
VISIBLE ONLINE
스케줄러는 SQL 데이터베이스가 배포되는 SQL Server 인스턴스에 2개의 vCore를 사용할 수 있을 때 예상되는 스케줄러입니다.SQL Server 배포의 경우 일반적으로
sys.dm_process_memory
와 같은 DMV를 살펴보면 CPU, 메모리, 작업자에 대한 제한을 확인할 수 있습니다. 사용자는 데이터베이스를 지원하는 호스트의 세부 정보를 공개하거나 제어하지 않으므로 Azure SQL Database에서는 이 DMV가 지원되지 않습니다. DMVsys.dm_user_db_resource_governance
를 사용하여 배포된 SQL 데이터베이스의 용량 및 제한을 검토할 수 있습니다. Azure SQL Managed Instance의sys.dm_instance_resource_governance
를 사용할 수도 있습니다.다음 쿼리 결과를 실행 및 검토합니다. 결과를 내 가격 책정 계층 및 배포된 계층에 대해 문서화된 제한과 비교해 보세요.
slo_name
은 배포 옵션, 서비스 계층, 하드웨어 및 컴퓨팅 용량을 나타내는 SLO(서비스 수준 목표)입니다. 또한 Azure SQL Database는 기타 리소스 제한(예: 메모리)에 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;
Azure SQL Database에
sys.dm_exec_requests
를 사용하는 것은 SQL Server 또는 SQL Managed Instance에 사용하는 것과 다릅니다. 이 DMV는 사용자의 데이터베이스와 관련된 활성 요청만 보여주며, 여기에는 데이터베이스 컨텍스트가 없어master
(으)로 나타나는 백그라운드 작업 및 기타 백그라운드 작업이 포함됩니다. 이 동작은 Azure SQL Database 배포의 특성 때문입니다.