Как связать диски с экземпляром SQL? - PullRequest
2 голосов
/ 24 ноября 2011

Как получить список всех дисков, связанных или используемых экземпляром SQL Server (2005 и выше)? Список должен включать фиксированные жесткие диски и точки монтирования. Я играл с sp_OAGetProperty, но тот не дает то, что я хочу.

Моя следующая остановка / попытка будет сделать это в Powershell, если это невозможно через T-SQL.

Ответы [ 3 ]

3 голосов
/ 24 ноября 2011

В этом списке перечислены все подключенные диски:

EXEC master..xp_fixeddrives

Хороший запрос Shark, в котором перечислены диски, используемые SQL Server с точки зрения системы SQL Server.

select distinct LEFT(physical_name, 2)
from sys.master_files -- Sharky's query

Второй упомянутый запрос не покажет вам все диски, которые используются SQL Server, если хранимые процедуры ссылаются на конкретные физические диски, которые экземпляр SQL Server явно не использует. Чтобы определить это, вы можете искать в коде ссылки на диски, найденные в списке, созданном первым вызовом sproc.

В моем случае второй запрос показывает только диск D: но у меня есть код в хранимых процедурах, который ссылается на диск F для файлов, которые массово вставляются в базу данных.

0 голосов
/ 24 ноября 2011

Если вы не находитесь в кластере, любой диск на машине можно использовать для файлов базы данных.Если вы находитесь в кластере, посмотрите sys.dm_io_cluster_shared_drives.

0 голосов
/ 24 ноября 2011

Вот что даст вам то, что вы хотите:

select distinct LEFT(physical_name, 2)
from sys.master_files

То, что вы получите, получит суммарные диски (т. Е. C:), используемые всеми базами данных в вашем данном экземпляре.

...