【问题标题】:Retrieve SQL Azure service levels for all databases on a server via SQL通过 SQL 检索服务器上所有数据库的 SQL Azure 服务级别
【发布时间】:2017-09-20 01:38:42
【问题描述】:

在升级到 SQL Azure V12 之前,我能够通过在主数据库中运行以下查询来获取 SQL Azure 数据库服务器上所有数据库的服务级别(S1、S2、P1、P2 等):

SELECT db.name DatabaseName, ru.sku AS ServiceTier, 
    slo.name AS ServiceLevel, ru.storage_in_megabytes AS StorageInMB, 
    ru.[time] ResourceUsageDateTime
FROM sys.databases db
LEFT OUTER JOIN dbo.slo_database_objectives dbslo ON (dbslo.database_id = db.database_id)
LEFT OUTER JOIN dbo.slo_service_objectives slo ON (slo.objective_id = dbslo.configured_objective_id)
LEFT OUTER JOIN sys.resource_usage ru ON (ru.database_name = db.name)
WHERE
    ru.[time] = (SELECT MAX([time]) FROM sys.resource_usage);

然而,这现在返回一个错误,说: "无效的对象名称 'dbo.slo_database_objectives'。"

有谁知道通过 SQL 查询执行此操作的另一种方法?

【问题讨论】:

    标签: azure azure-sql-database


    【解决方案1】:

    可以在数据库上查询:

    select DATABASEPROPERTYEX(db_name(),'serviceobjective') serviceobjective, 
       DATABASEPROPERTYEX(db_name(),'serviceobjectiveid') serviceobjectiveId, 
       DATABASEPROPERTYEX(db_name(),'edition') edition
    

    【讨论】:

      【解决方案2】:

      看起来它又开始工作了:

      SELECT  
          d.name,   
          slo.*    
      FROM sys.databases d
      JOIN sys.database_service_objectives slo    
          ON d.database_id = slo.database_id;  
      

      【讨论】:

        猜你喜欢
        • 2011-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多