T-Sql

Azure SQL 數據庫彈性池 - 獲取目前彈性池的 TSQL

  • April 20, 2021

我希望能夠使用 TSQL 獲取目前數據庫所屬的彈性池的名稱,但我能找到的唯一 DMV 包含彈性列是 sys.elastic_pool_resource_stats 並且我沒有看到對那裡的數據庫的任何引用。我還檢查了 sys.databases 以查看是否有一個額外的列被偷偷地放在那裡,但我無法辨識。

理想情況下,這應該像 @@servername 或 db_name() 一樣工作(他們什麼時候會開始創建 server_name() 或 @@dbname 以便我們可以一致地編碼?)

有誰知道合適的命令?

(順便說一句,“彈性池”沒有標籤)

這個呢?

-- TSQL to find Databases, corresponding elastic pool names and DB edition

SELECT
      @@SERVERNAME as [ServerName],
      dso.elastic_pool_name,
      d.name as DatabaseName,
      dso.edition
FROM
      sys.databases d inner join sys.database_service_objectives dso on d.database_id = dso.database_id
WHERE d.Name <> 'master'
ORDER BY
      d.name, dso.elastic_pool_name

找到它,雖然解決方案相當有限,因為這個 DMV 僅在主數據庫中可用,您實際上無法從使用者數據庫中引用它。

select d.name,  o.* 
from sys.database_service_objectives o
join sys.databases d on
 o.database_id = d.database_id

引用自:https://dba.stackexchange.com/questions/290099