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

Откуда: С-Петербург
Сообщений: 616
Здравствуйте.

есть один проект. работает на своих серверах и все хорошо
но возникло требование переложить его куда-то в облако
там дают mssql и ограничение только по размеру базы+лога
причем по размеру всяких postgre mysql и вообще файлов там unlimited
дак вот в приложении довольно сильно используется предналивка данных
во временные таблицы, глобальные временные таблицы и табличные переменные
и вот это всё работает уже в tempdb, а для него вроде как лимитов не устанавливают
вот и хочется потестировать этот вопрос чтобы напрячь эту тему
и пощупать где у него там предел если он есть вообще
пока туда ничего не переносили и на реальном не проверить
не могли бы вы предложить тест чтобы раздуть tempdb может на гиг или около того

спасибо.
6 май 15, 14:12    [17607326]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите тест как нагрузить tempdb  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
leov,
USE tempdb 
GO 
BEGIN TRAN 
CREATE TABLE #T(I INT IDENTITY(1,1) NOT NULL, J INT NOT NULL)

INSERT INTO #T(J) VALUES(0)

DECLARE @I INT = 22 ; -- эту константу подберите сколько вам надо 

WHILE @I > 0
BEGIN
	SET @I -= 1
	INSERT INTO #T
	SELECT J FROM #T
END 

exec sp_spaceused 'tempdb..#t'
COMMIT TRAN 
GO
DROP TABLE #T
6 май 15, 14:26    [17607452]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите тест как нагрузить tempdb  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
a_voronin,

спасибо.
я очень похожее прогнал
но 10000 записей создал, и в транзакцию не завернул
а тут удвоение.
попробую
6 май 15, 14:37    [17607559]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите тест как нагрузить tempdb  [new]
o-o
Guest
на пустой базе sys.all_columns имеет 5182 строк,
соответственно, мой запросец вставит 26853124 строк
и будет это примерно 2 гига.
if OBJECT_ID('tempdb..#t') is not null drop table #t; 
select c1.*
into dbo.t
from sys.all_columns c1 cross join sys.all_columns c2

a_voronin, вы хоть set nocount on выставьте, а то больше нагрузите сеть, чем tempdb, гоняя сообщения о каждой единичной вставке
6 май 15, 14:42    [17607615]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите тест как нагрузить tempdb  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
a_voronin,

прогнали при 24. больше не стали рисковать чтобы не отключили
около минуты пыхтело
подготовил то же для ## и для табличных переменных
7 май 15, 16:37    [17613950]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить