Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Свободное место  [new]
Zarra
Member

Откуда:
Сообщений: 107
Добрый день
На сервере microsoft Sql 2005 , при запросах результат где то сохраняется и места забивается на диске , не могу найти путь где именно
Подскажите плиз если кто то знает
8 май 18, 08:42    [21394689]     Ответить | Цитировать Сообщить модератору
 Re: Свободное место  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Ошибку в студию :) а так смотрите в сторону tempdb и больших файлов лога
8 май 18, 08:47    [21394701]     Ответить | Цитировать Сообщить модератору
 Re: Свободное место  [new]
Zarra
Member

Откуда:
Сообщений: 107
AlanDenton
Ошибку в студию :) а так смотрите в сторону tempdb и больших файлов лога

Ошибок нет но вот при каждом запросе места на диске все меньше и меньше
8 май 18, 09:00    [21394719]     Ответить | Цитировать Сообщить модератору
 Re: Свободное место  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Так посмотрите что место занимает:
IF OBJECT_ID('tempdb.dbo.#space') IS NOT NULL
    DROP TABLE #space

CREATE TABLE #space (
      database_id INT PRIMARY KEY
    , data_used_size DECIMAL(18,2)
    , log_used_size DECIMAL(18,2)
)

DECLARE @sql NVARCHAR(MAX) = (
    SELECT '
USE ' + QUOTENAME([name]) + '

INSERT INTO #space
SELECT DB_ID()
     , t.*
FROM (
    SELECT data = SUM(CASE WHEN [type] = 0 THEN space_used END)
         , log = SUM(CASE WHEN [type] = 1 THEN space_used END)
    FROM (
        SELECT [type], space_used = SUM(FILEPROPERTY(name, ''SpaceUsed'') * 8. / 1024)
        FROM sys.database_files
        GROUP BY [type]
    ) t
) t
'
    FROM sys.databases WITH(NOLOCK)
    WHERE [state] = 0
        AND HAS_PERMS_BY_NAME(name, 'DATABASE', 'ANY') = 1
    FOR XML PATH(''), TYPE).value('(./text())[1]', 'NVARCHAR(MAX)')

EXEC sys.sp_executesql @sql

SELECT id = d.database_id
     , d.[name]
     , d.log_reuse_wait_desc
     , d.state_desc
     , d.recovery_model_desc
     , t.total_size
     , t.data_size
     , s.data_used_size
     , t.log_size
     , s.log_used_size
     , bu.full_last_date
     , bu.full_size
     , bu.log_last_date
     , bu.log_size
FROM (
    SELECT database_id
         , log_size = CAST(SUM(CASE WHEN [type] = 1 THEN size END) * 8. / 1024 AS DECIMAL(18,2))
         , data_size = CAST(SUM(CASE WHEN [type] = 0 THEN size END) * 8. / 1024 AS DECIMAL(18,2))
         , total_size = CAST(SUM(size) * 8. / 1024 AS DECIMAL(18,2))
    FROM sys.master_files WITH(NOLOCK)
    GROUP BY database_id
) t
JOIN sys.databases d WITH(NOLOCK) ON d.database_id = t.database_id
LEFT JOIN #space s ON d.database_id = s.database_id
LEFT JOIN (
    SELECT [database_name]
         , full_last_date = MAX(CASE WHEN [type] = 'D' THEN backup_finish_date END)
         , full_size = MAX(CASE WHEN [type] = 'D' THEN backup_size END)
         , log_last_date = MAX(CASE WHEN [type] = 'L' THEN backup_finish_date END)
         , log_size = MAX(CASE WHEN [type] = 'L' THEN backup_size END)
    FROM (
        SELECT s.[database_name]
             , s.[type]
             , s.backup_finish_date
             , backup_size =
                         CAST(CASE WHEN s.backup_size = s.compressed_backup_size
                                     THEN s.backup_size
                                     ELSE s.compressed_backup_size
                         END / 1048576. AS DECIMAL(18,2))
             , RowNum = ROW_NUMBER() OVER (PARTITION BY s.[database_name], s.[type] ORDER BY s.backup_finish_date DESC)
        FROM msdb.dbo.backupset s WITH(NOLOCK)
        WHERE s.[type] IN ('D', 'L')
    ) f
    WHERE f.RowNum = 1
    GROUP BY f.[database_name]
) bu ON d.[name] = bu.[database_name]
ORDER BY t.total_size DESC
8 май 18, 09:06    [21394731]     Ответить | Цитировать Сообщить модератору
 Re: Свободное место  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Забыл что у Вас 2005й...

+
IF OBJECT_ID('tempdb.dbo.#space') IS NOT NULL
    DROP TABLE #space

CREATE TABLE #space (
      database_id INT PRIMARY KEY
    , data_used_size DECIMAL(18,2)
    , log_used_size DECIMAL(18,2)
)

DECLARE @sql NVARCHAR(MAX) = (
    SELECT '
USE ' + QUOTENAME([name]) + '

INSERT INTO #space
SELECT DB_ID()
     , t.*
FROM (
    SELECT data = SUM(CASE WHEN [type] = 0 THEN space_used END)
         , log = SUM(CASE WHEN [type] = 1 THEN space_used END)
    FROM (
        SELECT [type], space_used = SUM(FILEPROPERTY(name, ''SpaceUsed'') * 8. / 1024)
        FROM sys.database_files
        GROUP BY [type]
    ) t
) t
'
    FROM sys.databases WITH(NOLOCK)
    WHERE [state] = 0
        AND HAS_PERMS_BY_NAME(name, 'DATABASE', 'ANY') = 1
    FOR XML PATH(''), TYPE).value('(./text())[1]', 'NVARCHAR(MAX)')

EXEC sys.sp_executesql @sql

SELECT id = d.database_id
     , d.[name]
     , d.log_reuse_wait_desc
     , d.state_desc
     , d.recovery_model_desc
     , t.total_size
     , t.data_size
     , s.data_used_size
     , t.log_size
     , s.log_used_size
FROM (
    SELECT database_id
         , log_size = CAST(SUM(CASE WHEN [type] = 1 THEN size END) * 8. / 1024 AS DECIMAL(18,2))
         , data_size = CAST(SUM(CASE WHEN [type] = 0 THEN size END) * 8. / 1024 AS DECIMAL(18,2))
         , total_size = CAST(SUM(size) * 8. / 1024 AS DECIMAL(18,2))
    FROM sys.master_files WITH(NOLOCK)
    GROUP BY database_id
) t
JOIN sys.databases d WITH(NOLOCK) ON d.database_id = t.database_id
LEFT JOIN #space s ON d.database_id = s.database_id
ORDER BY t.total_size DESC
8 май 18, 09:07    [21394735]     Ответить | Цитировать Сообщить модератору
 Re: Свободное место  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Zarra
Добрый день
На сервере microsoft Sql 2005 , при запросах результат где то сохраняется и места забивается на диске , не могу найти путь где именно
Подскажите плиз если кто то знает

Место "забивается" на сервере или на локальном компьютере?
Если первое - скрипт дали.
Если второе - SSMS Temp File Location
8 май 18, 11:21    [21395188]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить