Метод должен делать одну вещь и делать это хорошо. Он не должен делать ничего более или менее того, что подразумевает его название. Метод CustomerSave также не должен нормализовать адрес клиента.
Метод должен касаться только одного «уровня» функциональности. Если в методе CustomerSave появляется более одной строки кода для каждого из следующих действий: открытие базы данных, регистрация изменений, проверка безопасности и т. Д., Тогда код работает на неправильном уровне, и должны быть созданы новые методы для работы с эти вещи в надлежащей детализации.
Метод обычно должен быть очень коротким. Только при особых обстоятельствах метод должен распространяться на более чем один экран. Если метод длиной в сто строк, то что-то очень, очень неправильно.
Кодекс не должен быть повторяющимся. Двойная функциональность должна быть помещена в метод.
Методы должны быть разработаны таким образом, чтобы можно было легко вносить типичные изменения. Если небольшое изменение необходимо внести в десятки мест, то это сигнализирует о повторяющемся коде, который должен быть размещен в одном методе.
Если вы можете использовать хранимые процедуры, это должно работать:
exec sp_msforeachdb 'use ? exec sp_spaceused'
Просмотрите sys.master_files таблица.
Этот запрос даст вам общий размер всего в вашем экземпляре:
SELECT SUM(size*8192.0) AS totalsize
FROM sys.master_files;
exec sp_helpdb
Отображает размер данных, владельца, дату создания и т. Д. Для всех баз данных на сервере в одной красивой таблице.
Если вы затем хотите углубиться в конкретную базу данных, чтобы увидеть размеры отдельных таблиц, которые вы можете использовать
use MyFunkyDb
go
EXECUTE sp_MSforeachtable 'EXECUTE sp_spaceused [?]'
Самый простой способ - использовать:
exec [sys].[sp_databases]
go
Что дает что-то вроде:
Name Size Remarks
mydatabase1 29888 NULL
mydatabase2 13760 NULL
mydatabase3 11776 NULL
master 5376 NULL
model 3008 NULL
msdb 7616 NULL
tempdb 2560 NULL
Для размера журналов транзакций, связанных с базой данных, используйте:
dbcc sqlperf(logspace)
go
Что дает что-то вроде:
Name Log Size (MB) Log Space Used (%) Status
master 1.242188 50.9434 0
tempdb 0.7421875 61.25 0
model 0.7421875 38.94737 0
msdb 1.992188 35.88235 0
mydatabase1 5.554688 18.55661 0
mydatabase2 2.742188 32.9594 0
mydatabase3 8.992188 26.58015 0