Создайте класс Language
public class Language
{
public string Name{get;set;}
public string Value{get;set;}
public override string ToString() { return this.Name;}
}
Затем добавьте в комбинированный список столько языков, сколько хотите:
yourCombobox.Items.Add(new Language{Name="English",Value="En"});
Выполнить sp_spacedused для каждой базы данных:
--temporary table to hold database names
CREATE TABLE #Databases (name varchar(255))
INSERT INTO #Databases
SELECT name FROM master..sysdatabases
DECLARE abc CURSOR FOR
SELECT name FROM #Databases
DECLARE @name varchar(255)
DECLARE @sql nvarchar(1024)
OPEN abc
FETCH NEXT FROM abc INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
--build sql to switch to that database...
SET @sql = 'USE '+@name
PRINT @sql
EXECUTE (@sql)
--and run spaceused on it
SET @sql = 'EXECUTE sp_spaceused @UpdateUsage=True'
PRINT @sql
EXECUTE (@sql)
FETCH NEXT FROM ABC INTO @name
END
CLOSE abc
DEALLOCATE abc
DROP TABLE #Databases
Выполнить T-SQL:
USE Contoso
EXECUTE sp_spaceused @UpdateUsage=True
Результаты:
database_name: Contoso
database_size: 85.13 MB
unallocated_space: 15.41 MB
reserved: 70,368 KB (68.7 MB)
data: 42,944 KB (41.9 MB)
index_size: 24,200 KB (23.6 MB)
unused: 3,224 KB ( 3.1 MB)
Сжать:
DBCC SHRINKDATABASE (Contoso)
Еще раз проверить место:
EXECUTE sp_spaceused @UpdateUsage=True
Результаты:
database_name: Contoso
database_size: 69.81 MB
unallocated_space: 0.20 MB
reserved: 70,256 KB (68.6 MB)
data: 43,024 KB (42.0 MB)
index_size: 24,200 KB (23.6 MB)
unused: 3,032 KB ( 3.0 MB)
Ответ заключается в том, чтобы не беспокоиться о том, сколько свободного места в базах данных, и вместо этого запускать еженедельное или еженедельное задание по обслуживанию, которое выполняется уплотнение. Скорее всего, вы не сжимаете свои файлы журналов (это место, где у меня обычно был наибольший рост).
Запустите полное резервное копирование, затем запустите резервное копирование журнала транзакций с помощью TRUNCATE_ONLY, а после его завершения запустите DBCC SHRINKFILE () для файлов журналов и баз данных.
Тогда вам нужно будет отслеживать только общее доступное дисковое пространство, а не рост отдельной базы данных.
SQL Server Shrink Database . Вы ОБЯЗАТЕЛЬНО ДОЛЖНЫ выполнить полное резервное копирование и резервную копию журнала транзакций, прежде чем это сработает.
Вы можете получить информацию об отдельных загруженных файлах, запустив "select * from master.dbo.sysdatabases" и "select * from [dbname] .. sysfiles". Я не на 100%, я не трогал экземпляр SQL Server почти год, системные файлы могут быть в «главной» базе данных.
Возможно, что-то в представлениях WMI или SQL. Но я должен спросить - каково ваше время, которое вы тратите на это каждый день, по сравнению с покупкой дисководов?
Вы можете использовать процедуру sp_spaceused и использовать ее результат, или вы можете сами заглянуть в таблицу sys.allocations_units и подсчитать общее количество использованных страниц. Вы должны смотреть не на уровень «базы данных», а на уровень файлов, потому что некоторые из них могут иметь несколько NDF. Начните с sys.database_files, чтобы увидеть все файлы в файлах базы данных. Столбец размера будет содержать общее количество страниц в базе данных. Суммируйте общее количество страниц из sys.allocation_units, чтобы получить использованные страницы:
with sum_au as (
select data_space_id
, sum(total_pages) as total_pages
from sys.allocation_units au
group by data_space_id)
select ds.name
, df.size
, total_pages as in_use
from sys.database_files df
join sys.data_spaces ds on df.data_space_id = ds.data_space_id
join sum_au au on au.data_space_id = ds.data_space_id