연습 - Azure SQL Database 확인

완료됨

이제 Azure SQL이 SSMS(SQL Server Management Studio)에 표시되는 방식을 살펴보았으므로 배포를 확인할 수 있습니다.

배포 확인

SQL의 인스턴스를 배포한 후에 일반적으로 배포를 확인하는 쿼리를 실행합니다. Azure SQL에서 관련 쿼리 중 일부는 SQL Server와 다릅니다. 이 단계에서는 SQL Server의 변경 내용, 변경 방법 및 새로운 항목을 확인합니다.

이 연습에서는 SSMS에서 배포한 후 사용할 수 있는 시스템 함수, DMV(동적 관리 뷰) 및 카탈로그 뷰에 대한 몇 가지 일반적인 쿼리를 살펴봅니다. SQL Server와 동일하게 작동하는 항목, 그렇지 않은 항목 및 Azure SQL의 새로운 항목이 표시됩니다.

  1. 아직 연결하지 않은 경우 SSMS에서 Azure SQL Database 논리 서버에 연결합니다.

  2. AdventureWorks 데이터베이스를 마우스 오른쪽 단추로 클릭하고 새 쿼리를 선택합니다.

  3. 잘 알려진 시스템 함수 @@VERSION을 실행하여 배포한 버전을 확인합니다.

    SELECT @@VERSION
    

    SELECT @@VERSION 함수의 결과 스크린샷

    결과는 SQL Server와 약간 다르게 보입니다. 이 서버가 버전이 없는 Azure SQL임을 알 수 있습니다. Azure SQL Database에는 SQL Server의 최신 릴리스와 비슷한 최신 변경 내용이 포함되어 있습니다. 하지만 시스템 함수 @@VERSION을 사용하는 것은 SQL Server를 “쿼리”할 수 있는지 확인하는 일반적인 방법입니다.

  4. 반환된 숫자를 기준으로 특정 유형의 Azure SQL 배포를 결정할 수 있습니다.

    • 1: 개인 또는 데스크톱 엔진
    • 2: 표준
    • 3: Enterprise
    • 4: Express
    • 5: SQL Database
    • 6: SQL Data Warehouse
    • 8: SQL Managed Instance

    다음 T-SQL 명령을 실행하여 예상 결과가 표시되는지 확인합니다.

    SELECT SERVERPROPERTY('EngineEdition');
    

    Azure SQL 배포의 결과 스크린샷.

    결과는 5이며, SQL Managed Instance 또는 SQL Server Enterprise가 아닌 Azure SQL Database를 배포했으므로 해당 값은 적합합니다. Azure Virtual Machines에는 특별한 SQL Server용 숫자가 없습니다. 이 숫자는 가상 머신에 설치한 버전에 해당합니다. 개인용 또는 데스크톱 엔진은 SQL Server에서 더 이상 사용되지 않는 레거시 버전입니다.

  5. 카탈로그 뷰 sys.databasessys.objects를 살펴보겠습니다. 일반적으로 이 뷰를 통해 시스템 데이터베이스의 설치 및 상태를 확인하고 데이터베이스의 시스템 개체를 확인합니다.

    SELECT * FROM sys.databases;
    SELECT * FROM sys.objects;
    

    sys.databases 및 sys.objects의 결과 스크린샷.

    첫 번째 결과 집합에서는 시스템 데이터베이스 msdb, tempdb, model이 나열되지 않습니다. master 및 사용자 데이터베이스만 나열됩니다. 논리 서버의 데이터베이스는 master SQL Server와 함께 설치된 실제 master 데이터베이스와 다릅니다. Azure SQL Managed Instance에는 SQL Server 인스턴스와 마찬가지로 일반적인 시스템 데이터베이스 집합이 표시됩니다.

    그러나 sys.objects는 일반적인 SQL Server 인스턴스와 비슷하게 보입니다. 이는 샘플 AdventureWorksLT 데이터베이스의 시스템 테이블, 내부 테이블, 사용자 개체에서 동일합니다.

  6. 2-vCore 모델을 사용해 배포했다는 점을 고려하여 모든 스케줄러가 온라인 상태이고 예상되는 사용 가능한 CPU를 검색하고 있는지 확인하세요.

    SELECT * FROM sys.dm_os_schedulers where STATUS = 'VISIBLE ONLINE';
    

    sys.dm_os_schedulers에 대한 결과 스크린샷.

    두 개의 VISIBLE ONLINE 스케줄러는 SQL 데이터베이스가 배포되는 SQL Server 인스턴스에 2개의 vCore를 사용할 수 있을 때 예상되는 스케줄러입니다.

  7. SQL Server 배포의 경우 일반적으로 sys.dm_process_memory와 같은 DMV를 살펴보면 CPU, 메모리, 작업자에 대한 제한을 확인할 수 있습니다. 사용자는 데이터베이스를 지원하는 호스트의 세부 정보를 공개하거나 제어하지 않으므로 Azure SQL Database에서는 이 DMV가 지원되지 않습니다. DMV sys.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;
    

    리소스 거버넌스 제한을 보여 주는 결과의 스크린샷.

  8. SQL Server 배포를 확인하는 일반적인 기술은 활성 요청 목록을 검사하는 것입니다. SQL Server와 마찬가지로 sys.dm_exec_requests를 사용하여 현재 실행 중인 SQL 요청을 확인할 수 있습니다.

    SELECT * FROM sys.dm_exec_requests;
    

    dm_exec_requests를 보여 주는 결과의 스크린샷

    Azure SQL Database에 sys.dm_exec_requests를 사용하는 것은 SQL Server 또는 SQL Managed Instance에 사용하는 것과 다릅니다. 이 DMV는 사용자의 데이터베이스와 관련된 활성 요청만 보여주며, 여기에는 데이터베이스 컨텍스트가 없어 master(으)로 나타나는 백그라운드 작업 및 기타 백그라운드 작업이 포함됩니다. 이 동작은 Azure SQL Database 배포의 특성 때문입니다.