|
0
Lama12
27.12.11
✎
15:52
|
Вопрос - как в запросе определить минимальный размер файлов определенной базы данных.
Для чего задача.
В шарепоинте стоит задание шринкующее базы данных. Некоторые базы, в результате шринка не изменяют свой размер. Шарепоинт ругается. Хочется не делать шринк по тем базам у которых текущий размер файлов, соответствует минимальным значениям из настроек.
Текущий размер нашли где искать.
|
|
|
4
МихаилМ
27.12.11
✎
17:52
|
(3)
догадайтесь, как я получил этот скрипт.
create table #tmplogspc (DatabaseName sysname, LogSize float, SpaceUsedPerc float, Status bit)
insert #tmplogspc EXEC ('dbcc sqlperf(logspace)')
SELECT
s.name AS [Name],
s.physical_name AS [FileName],
CAST(CASE s.is_percent_growth WHEN 1 THEN s.growth ELSE s.growth*8 END AS float) AS [Growth],
CAST(CASE when s.growth=0 THEN 99 ELSE s.is_percent_growth END AS int) AS [GrowthType],
s.file_id AS [ID],
CASE when s.max_size=-1 then -1 else s.max_size * CONVERT(float,8) END AS [MaxSize],
s.size * CONVERT(float,8) AS [Size],
tspclog.LogSize * tspclog.SpaceUsedPerc * 10.24 AS [UsedSpace],
CAST(case s.state when 6 then 1 else 0 end AS bit) AS [IsOffline],
s.is_read_only AS [IsReadOnly],
s.is_media_read_only AS [IsReadOnlyMedia],
s.is_sparse AS [IsSparse]
FROM
sys.master_files AS s
INNER JOIN #tmplogspc tspclog ON
tspclog.DatabaseName = db_name()
WHERE
(s.type = 1 and s.database_id = db_id())
ORDER BY
[Name] ASC
drop table #tmplogspc
|
|