Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
коварный tempdb
Guest
Темы подобные были. И не один раз. Но в большинстве из них, если не вовсех, написано,
что необходим перезапуск MS SQL.
Возможно ли решить проблему без перезапуска MS SQL?

БД tempdb.mdf заняла почти всё место на диске (170 Gb!!!)
Лог БД небольшой, и места почти не занимает.
БД tempdb находится в Simple Recovery Mode.
14 ноя 12, 11:09    [13469915]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
коварный tempdb
БД tempdb.mdf заняла почти всё место на диске (170 Gb!!!)
А в фйле то есть место? А то, может, там коннект открыт, а в нём создана какая нибуть большая временная таблица...
14 ноя 12, 11:17    [13469988]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Был интересный случай... Пришел на новую работу, а ко мне со слезами проблемы с ней же. Оказалось, какой то умник поставил начальный размер 300 гиг. А она не жрет больше 30, когда уменьшил :)
14 ноя 12, 11:19    [13470000]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33658
Блог
попробуйте
dbcc shrinkfile (tempdev,5000)


если не помогло, то проверьте, вдруг кто-то там еще работает
dbcc opentran


потом попробуйте (но лучше сначала почитать, что есть что)
DBCC FREEPROCCACHE
DBCC DROPCLEANBUFFERS
DBCC FREESYSTEMCACHE ('ALL')
DBCC FREESESSIONCACHE


а затем опять
dbcc shrinkfile (tempdev,5000)
14 ноя 12, 11:27    [13470085]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
коварный tempdb
Guest
в файле свободного места почти нет (ничтожно мало).

dbcc opentran
выдало:

Transaction information for database 'tempdb'.

Oldest active transaction:
    SPID (server process ID): 85
    UID (user ID) : -1
    Name          : sort_init
    LSN           : (70756:3495:430)
    Start time    : Nov 12 2012  5:59:23:983PM
    SID           : 0x74084f581b637f4295e5dfe0843720e8


что делать?
14 ноя 12, 12:02    [13470456]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
Glory
Member

Откуда:
Сообщений: 104760
коварный tempdb
что делать?

Убить "SPID (server process ID): 85", который с 12-10 не может заваершить транзакцию
14 ноя 12, 12:06    [13470524]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
коварный tempdb
Guest
Glory
коварный tempdb
что делать?

Убить "SPID (server process ID): 85", который с 12-10 не может заваершить транзакцию

процесс подвисший 85 я убил, после этого сделал
dbcc shrinkfile (tempdev,5000)


но tempdb уменьшился ненамного. если быть точнее со 187 Гб уменьшился до 175Гб!
14 ноя 12, 12:13    [13470604]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
Glory
Member

Откуда:
Сообщений: 104760
коварный tempdb
процесс подвисший 85 я убил,

И dbcc opentran это тоже подтверждает ?
14 ноя 12, 12:14    [13470614]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Сказать команду килл - не убить процесс.
может откат выполняться.
14 ноя 12, 12:20    [13470670]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
коварный tempdb
Guest
Glory
коварный tempdb
процесс подвисший 85 я убил,

И dbcc opentran это тоже подтверждает ?

да, подтверждает:

 dbcc opentran

No active open transactions.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
14 ноя 12, 12:21    [13470689]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
Glory
Member

Откуда:
Сообщений: 104760
DBCC SQLPERF(LOGSPACE);
что вернет ?
14 ноя 12, 12:22    [13470706]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
Результат выполнения кода на tempdb в студию
select db_name(sa.dbid) as DBname 
	, sa.name as LogicalName
	, case sa.groupid
		WHEN 0 then 'LOG'
		ELSE sfg.groupname
	  end as Filegroup
	, sa.filename as Filename
	, cast(sf.size*8/1024. as numeric(19,3))as sizeMB
	, cast(sf.spaceused*8/1024. as numeric(19,3)) as spaceusedMB
	, cast((sf.size-sf.spaceused)*8/1024. as numeric(19,3)) as freespaceMB
	, case sf.maxsize
		when -1 then 'Unlimited'
		else cast(cast(sf.maxsize*8/1024.  as numeric(19,3))as varchar(22))
	  end as maxsizeMB
	, cast(sf.growth*8/1024. as numeric(19,3)) as nextgrowthMB
from master..sysaltfiles sa 
left join (
	select   cast(size as bigint) as size
			,fileid
			,groupid
			,cast(fileproperty(name,'SpaceUsed')as bigint) as spaceused 
			,cast(maxsize as bigint) as maxsize
			,cast(case 
				when status & 0x100000 = 0 then growth
				else size*growth/100
			 end as bigint) as growth
	from sysfiles
	) sf on sf.fileid=sa.fileid 
		and sf.groupid = sa.groupid
left outer join sysfilegroups sfg on sfg.groupid = sf.groupid
where sa.dbid = db_id()
order by case when sa.groupid = 0 then 1 else 0 end, sa.groupid, sa.fileid
14 ноя 12, 12:22    [13470708]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
коварный tempdb
Guest
Ozerov
Сказать команду килл - не убить процесс.
может откат выполняться.


я проверил, процесс завершился. смотрел через activity monitor.
процесс висел в состоянии suspend. затем исчез из списка процессов
14 ноя 12, 12:23    [13470716]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
коварный tempdb
процесс подвисший 85 я убил, после этого сделал
dbcc shrinkfile (tempdev,5000)

но tempdb уменьшился ненамного. если быть точнее со 187 Гб уменьшился до 175Гб!
Ну так опять проверяйте, место освободилось или нет.

Место занимается совсем необязательно открытой транзакцией.

Не знаю, как посмотреть принадлежность объектов из темпдб, не всегда это просто... Посмотрите хотя бы размеры, занимаемые объектами...

SELECT 
	o.name,
	SUM (p.reserved_page_count) * 8 as reservedpages,
	SUM (p.used_page_count) * 8 as usedpages,
	SUM (
		CASE
			WHEN (p.index_id < 2) THEN (p.in_row_data_page_count + p.lob_used_page_count + p.row_overflow_used_page_count)
			ELSE p.lob_used_page_count + p.row_overflow_used_page_count
		END
		) as pages,
	SUM (
		CASE
			WHEN (p.index_id < 2) THEN p.row_count
			ELSE 0
		END
		) as [rowCount]
FROM sys.dm_db_partition_stats p
	join sys.objects as o
		on o.object_id = p.object_id
		and o.type = 'U'
group by o.name
order by reservedpages desc
14 ноя 12, 12:28    [13470764]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
коварный tempdb
Guest
Glory
DBCC SQLPERF(LOGSPACE);
что вернет ?


Database Name   Log Size(Mb)    Log Space Used(Mb) Status
   master	   4,117188	   34,06072   	      0
   tempdb	   0,9921875	   61,02362	      0
   model	   28,80469	   94,91457	      0
   msdb	           23,80469	   19,16639	      0




DBname	LogicalName	Filegroup	Filename	      sizeMB	   spaceusedMB	  freespaceMB	 maxsizeMB	  nextgrowthMB
tempdb	tempdev	         PRIMARY	D:\MSSQL10.MSSQLSERVER\MSSQL\DATA\tempdb.mdf	171828.500	378.813	171449.688	Unlimited	17182.844
tempdb	templog	         LOG	        D:\MSSQL10.MSSQLSERVER\MSSQL\DATA\templog.ldf	1.000	0.672	0.328	Unlimited	0.094
14 ноя 12, 12:30    [13470795]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
Glory
Member

Откуда:
Сообщений: 104760
коварный tempdb
  tempdb	   0,9921875	   61,02362	      0

А каких гигабайтах tempdb вы говорите ?
С логом все в порядке
Навереное кто-то просто насоздавал объектов в базе ?

Сообщение было отредактировано: 14 ноя 12, 12:33
14 ноя 12, 12:31    [13470814]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
коварный tempdb
Guest
Glory
коварный tempdb
  tempdb	   0,9921875	   61,02362	      0

А каких гигабайтах tempdb вы говорите ?
С логом все в порядке
Навереное кто-то просто насоздавал объектов в базе ?


уважаемый, при чём тут лог? ну при чём, а?
я же специально даже цветом выделил у меня проблема с tempdb.mdf , а не с templog.ldf
14 ноя 12, 12:36    [13470863]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
коварный tempdb
Guest
alexeyvg
коварный tempdb
процесс подвисший 85 я убил, после этого сделал
dbcc shrinkfile (tempdev,5000)

но tempdb уменьшился ненамного. если быть точнее со 187 Гб уменьшился до 175Гб!
Ну так опять проверяйте, место освободилось или нет.

Место занимается совсем необязательно открытой транзакцией.

Не знаю, как посмотреть принадлежность объектов из темпдб, не всегда это просто... Посмотрите хотя бы размеры, занимаемые объектами...

SELECT 
	o.name,
	SUM (p.reserved_page_count) * 8 as reservedpages,
	SUM (p.used_page_count) * 8 as usedpages,
	SUM (
		CASE
			WHEN (p.index_id < 2) THEN (p.in_row_data_page_count + p.lob_used_page_count + p.row_overflow_used_page_count)
			ELSE p.lob_used_page_count + p.row_overflow_used_page_count
		END
		) as pages,
	SUM (
		CASE
			WHEN (p.index_id < 2) THEN p.row_count
			ELSE 0
		END
		) as [rowCount]
FROM sys.dm_db_partition_stats p
	join sys.objects as o
		on o.object_id = p.object_id
		and o.type = 'U'
group by o.name
order by reservedpages desc

#tt9________________________________________________________________________________________________________________0000000258B1	144	96	12	0
#am_wait_stats_snapshots____________________________________________________________________________________________000000007B7A	56	56	5	236
#am_wait_types______________________________________________________________________________________________________000000007B79	40	40	3	263
#am_resource_mon_snap_______________________________________________________________________________________________000000007B7B	40	40	3	43
#am_request_count___________________________________________________________________________________________________000000007B7E	16	16	1	1
#am_dbfileio________________________________________________________________________________________________________000000007B7C	16	16	1	1
#tt10_______________________________________________________________________________________________________________000000025887	16	16	2	0
#tt10_______________________________________________________________________________________________________________00000002589D	16	16	2	0
#tt9________________________________________________________________________________________________________________0000000258E8	16	16	2	0
#tt9________________________________________________________________________________________________________________000000025886	16	16	2	0
#tt9________________________________________________________________________________________________________________00000002589C	16	16	2	0
#tt11_______________________________________________________________________________________________________________0000000258B3	16	16	2	0
#tt12_______________________________________________________________________________________________________________0000000258B4	16	16	2	0
#tt7________________________________________________________________________________________________________________000000025856	16	16	2	0
#tt13_______________________________________________________________________________________________________________0000000258F1	16	16	2	0
#tt14_______________________________________________________________________________________________________________0000000258E9	16	16	2	0
#tt14_______________________________________________________________________________________________________________0000000258F2	0	0	0	0
#tt15_______________________________________________________________________________________________________________0000000258F3	0	0	0	0
#tt16_______________________________________________________________________________________________________________0000000258F4	0	0	0	0
#tt17_______________________________________________________________________________________________________________0000000258F5	0	0	0	0
#tt18_______________________________________________________________________________________________________________0000000258F6	0	0	0	0
#tt19_______________________________________________________________________________________________________________0000000258F7	0	0	0	0
#tt2________________________________________________________________________________________________________________000000025851	0	0	0	0
#tt2________________________________________________________________________________________________________________00000002587B	0	0	0	0
#tt2________________________________________________________________________________________________________________00000002587F	0	0	0	0
#tt2________________________________________________________________________________________________________________0000000258AA	0	0	0	0
#tt2________________________________________________________________________________________________________________0000000258ED	0	0	0	0
#tt3________________________________________________________________________________________________________________000000025852	0	0	0	0
#tt3________________________________________________________________________________________________________________000000025880	0	0	0	0
#tt3________________________________________________________________________________________________________________000000025896	0	0	0	0
#tt3________________________________________________________________________________________________________________0000000258AB	0	0	0	0
#tt3________________________________________________________________________________________________________________0000000258C7	0	0	0	0
#tt3________________________________________________________________________________________________________________0000000258EE	0	0	0	0
#tt4________________________________________________________________________________________________________________000000025853	0	0	0	0
#tt4________________________________________________________________________________________________________________000000025881	0	0	0	0
#tt4________________________________________________________________________________________________________________000000025897	0	0	0	0
#tt4________________________________________________________________________________________________________________0000000258AC	0	0	0	0
#tt4________________________________________________________________________________________________________________0000000258C8	0	0	0	0
#tt5________________________________________________________________________________________________________________000000025854	0	0	0	0
#tt5________________________________________________________________________________________________________________000000025882	0	0	0	0
#tt5________________________________________________________________________________________________________________000000025898	0	0	0	0
#tt5________________________________________________________________________________________________________________0000000258AD	0	0	0	0
#tt6________________________________________________________________________________________________________________000000025855	0	0	0	0
#tt6________________________________________________________________________________________________________________000000025883	0	0	0	0
#tt6________________________________________________________________________________________________________________000000025899	0	0	0	0
#tt6________________________________________________________________________________________________________________0000000258AE	0	0	0	0
#tt6________________________________________________________________________________________________________________0000000258E5	0	0	0	0
#tt7________________________________________________________________________________________________________________000000025884	0	0	0	0
#tt7________________________________________________________________________________________________________________00000002589A	0	0	0	0
#tt7________________________________________________________________________________________________________________0000000258AF	0	0	0	0
#tt7________________________________________________________________________________________________________________0000000258E6	0	0	0	0
#tt8________________________________________________________________________________________________________________000000025857	0	0	0	0
#tt8________________________________________________________________________________________________________________000000025885	0	0	0	0
#tt8________________________________________________________________________________________________________________00000002589B	0	0	0	0
#tt8________________________________________________________________________________________________________________0000000258B0	0	0	0	0
#tt8________________________________________________________________________________________________________________0000000258E7	0	0	0	0
#tt9________________________________________________________________________________________________________________000000025858	0	0	0	0
#tt12_______________________________________________________________________________________________________________0000000258E3	0	0	0	0
#tt13_______________________________________________________________________________________________________________000000025893	0	0	0	0
#tt12_______________________________________________________________________________________________________________000000025892	0	0	0	0
#tt10_______________________________________________________________________________________________________________0000000258B2	0	0	0	0
#tt11_______________________________________________________________________________________________________________00000002587C	0	0	0	0
#tt11_______________________________________________________________________________________________________________000000025889	0	0	0	0
#tt11_______________________________________________________________________________________________________________00000002589F	0	0	0	0
#am_dbfilestats_____________________________________________________________________________________________________000000007B7D	0	0	0	0
#am_fingerprint_stats_snapshots_____________________________________________________________________________________000000007B7F	0	0	0	0
#tt1________________________________________________________________________________________________________________000000025850	0	0	0	0
#tt1________________________________________________________________________________________________________________00000002586F	0	0	0	0
#tt1________________________________________________________________________________________________________________00000002587A	0	0	0	0
#tt1________________________________________________________________________________________________________________00000002587D	0	0	0	0
#tt1________________________________________________________________________________________________________________000000025888	0	0	0	0
#tt1________________________________________________________________________________________________________________00000002589E	0	0	0	0
#tt1________________________________________________________________________________________________________________0000000258A9	0	0	0	0
#tt1________________________________________________________________________________________________________________0000000258C1	0	0	0	0
#tt1________________________________________________________________________________________________________________0000000258C2	0	0	0	0
#tt1________________________________________________________________________________________________________________0000000258EC	0	0	0	0
#tt10_______________________________________________________________________________________________________________000000025859	0	0	0	0
14 ноя 12, 12:39    [13470902]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
Glory
Навереное кто-то просто насоздавал объектов в базе ?
Вроде spaceusedMB маленький.

Нужно попытаться сделать опять шринк файла данных, dbcc shrinkfile (tempdev,5000) ...
14 ноя 12, 12:40    [13470906]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
Glory
Member

Откуда:
Сообщений: 104760
коварный tempdb
я же специально даже цветом выделил у меня проблема с tempdb.mdf , а не с templog.ldf

А каким "цветом" вы посмотрели, какие объекты и сколько занимают места в вашем tempdb.mdf ?
14 ноя 12, 12:42    [13470941]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
коварный tempdb
Guest
alexeyvg
Glory
Навереное кто-то просто насоздавал объектов в базе ?
Вроде spaceusedMB маленький.

Нужно попытаться сделать опять шринк файла данных, dbcc shrinkfile (tempdev,5000) ...

я тоже так считаю. я ещё использую встроенный отчёт ms sql disk usage, где показывается свободное и занятое
пространство.

Вся проблема в том, что dbcc shrinkfile (tempdev,5000) не помогает. он отрабатывает, но место в Tempdb.mdf не уменьшается.
похоже всё же потребуется перезапуск ms sql.
14 ноя 12, 12:52    [13471045]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
коварный tempdb
Guest
Glory
коварный tempdb
я же специально даже цветом выделил у меня проблема с tempdb.mdf , а не с templog.ldf

А каким "цветом" вы посмотрели, какие объекты и сколько занимают места в вашем tempdb.mdf ?


я воспользовался скриптом, который мне любезно предоствил alexeyvg
14 ноя 12, 13:01    [13471166]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
Был как-то такой случай, помогло установление начального размера файла для вашего случая >378.813Mб и дальнейший шринк под установленное значение с возвращением неиспользуемого места ОС
14 ноя 12, 13:02    [13471173]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
коварный tempdb
Guest
у меня возник вопрос: а каким образом, мне поможет очистка буферов, кэша в данном вопросе?
вернее я не понимаю, как это связано с Tempdb.mdf непосредственно.
14 ноя 12, 13:04    [13471206]     Ответить | Цитировать Сообщить модератору
 Re: Как уменьшить размер tempdb.mdf без перезапуска MS SQL? RM: Simple. Shrink не помог  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33658
Блог
коварный tempdb,

есть версия, что они там хрянятся как служебные объекты
если не поможет, то только перезапуск

у меня была такая же проблема
https://www.sql.ru/forum/actualthread.aspx?tid=797239
шринк также отрабатывал частично
14 ноя 12, 13:48    [13471775]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить