web-dev-qa-db-ja.com

システムデータベースをMDWSQL Server 2008R2から分離する

2つのSQLServerで管理データウェアハウス機能を構成しています。どちらも同じ中央データベースを指し、その結果をデータベースにアップロードします。

インスタンスから実行される組み込みレポートでは、すべてが正常に機能します。ただし、snapshots.diskusageテーブルからすべてのデータを取得して、データベースがどのように成長したかを示し、次の時間のストレージソリューションを策定するのに役立てています。ほとんどの場合、データベースには一意の名前が付けられているため、実行する必要はありません。

SELECT * 
FROM [RKYV_MDW].[snapshots].[disk_usage]
WHERE database_name = 'tempdb'

トリッキーな部分はシステムデータベースに付属しており、特に厄介なのはtempdbです。両方のインスタンスにtempdbがあり、それらの統計をアップロードしているのを見ると、データポイントの数が2倍になり、グラフはやや無意味になります。テーブルバーsnapshot_idには、2つを分離するのに役立つものは何もありませんが、これが特定のインスタンスtempdbに固有であるかどうかはわかりません。

誰かがこれについて何か考えがありますか?私の代替案は、1行おきに(データをざっと見てから)選択することですが、もっとエレガントな方法があるはずだと感じています。

1
Tim Alexander

スナップショット_internalを介して、サーバーインスタンス名を持つsource_info_internalに参加します。

SELECT du.*, sii.instance_name
FROM [snapshots].[disk_usage] du
    INNER JOIN core.[snapshots_internal] si ON du.snapshot_id = si.snapshot_id
        INNER JOIN [core].[source_info_internal] sii ON si.source_id = sii.source_id
WHERE du.database_name = 'tempdb'
2
wBob