Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перенос tempdb на ram диск / 10 сообщений из 10, страница 1 из 1
05.02.2021, 11:05
    #40041998
Mandarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос tempdb на ram диск
Всем привет! Подскажите пожалуйста как правильно протестировать скорость работы tempdb?

Сейчас tempdb лежит на быстрых SSD в RAID 0 из двух дисков. Хочу ускорить работу tempdb путём переноса на ram диск.
Создал ram диск, проверил скорость чтения записи утилитой Disk benchmark. Скорость сильно выше чем была на SSD. Пробую работать с tempdb скорость практически не изменилась. Может я не правильно тесты провожу или ещё что-то не так делаю, почему скорость работы с tempdb не увеличилась?

Версия: SQL Server 2017 CU22

Пример теста

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
create table #tmp(field1 int)

declare
 @d1 datetime,
 @i int,
 @x int = 0

insert into #tmp(field1)
select field1
from mytable with (nolock)
where field2 = 2

-- @@ROWCOUNT примерно 8 млн.

set @d1 = GETDATE()

while @x < 100
begin

 select @i = count(*)
 from #tmp
 where field1 = @x

 update #tmp set
  field1 = field1 + 1
 where field1 = @x

 set @x = @x + 1

end

select DATEDIFF(MILLISECOND,@d1,GETDATE())

drop table #tmp
...
Рейтинг: 0 / 0
05.02.2021, 12:03
    #40042028
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос tempdb на ram диск
Есть сабж уже на ССД, то перенос на РАМ не даст практически ничего.
...
Рейтинг: 0 / 0
05.02.2021, 12:17
    #40042037
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос tempdb на ram диск
Mandarin,

не надо, там и так нормально все оптимизировано,
а так вы сильно сократили буферный пул,
лучше просто положите tempdb на RAID 10
...
Рейтинг: 0 / 0
05.02.2021, 12:35
    #40042055
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос tempdb на ram диск
Mandarin
Сейчас tempdb лежит на быстрых SSD в RAID 0 из двух дисков. Хочу ускорить работу tempdb путём переноса на ram диск.
Есть объективные предпосылки или так, для "большей лучшести"?
Mandarin
Пример теста
Этот тест ни о чем. Практически все манипуляции будут в BP без физического IO.

А хоть как-то сравнить можно так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
use tempdb;
set ansi_nulls, quoted_identifier, xact_abort on;
go

create table dbo.t (id int identity primary key, filler char(8000));

insert into dbo.t
 (filler)
 select top (10000)
  'a'
 from
  master.dbo.spt_values a cross join
  master.dbo.spt_values b;
go

set statistics time on;
checkpoint;
set statistics time off;
go

drop table dbo.t;
go
...
Рейтинг: 0 / 0
05.02.2021, 13:35
    #40042091
tunknown
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос tempdb на ram диск
invm
Практически все манипуляции будут в BP без физического IO.
Простым методом добиться физического I/O получиться только на редакции Express?

Использовать только для попытки смягчения условий лицензии, как с редакцией Standard ?
...
Рейтинг: 0 / 0
05.02.2021, 13:55
    #40042112
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос tempdb на ram диск
tunknown
Простым методом добиться физического I/O получиться только на редакции Express?
Критерий простоты какой?

Как сделать для записи я показал.
Для чтения можно взять обычную БД, сделать ей offline-online и выполнить запрос на чтение таблицы.
...
Рейтинг: 0 / 0
05.02.2021, 14:17
    #40042129
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос tempdb на ram диск
Mandarin
Всем привет! Подскажите пожалуйста как правильно протестировать скорость работы tempdb?

Сейчас tempdb лежит на быстрых SSD в RAID 0 из двух дисков. Хочу ускорить работу tempdb путём переноса на ram диск.
Создал ram диск, проверил скорость чтения записи утилитой Disk benchmark. Скорость сильно выше чем была на SSD. Пробую работать с tempdb скорость практически не изменилась. Может я не правильно тесты провожу или ещё что-то не так делаю, почему скорость работы с tempdb не увеличилась?


Патамушто гладиолус.
Учиться надо и не будет глупых иллюзий.

1. MS SQL обучен использовать память лучше, чем RAM-диск. Сервер - суть гигантский кэш над диском.
2. TEMPDB практически не пишет на диск. Если может.
3. Займитесь оптимизацией запросов - больше толку будет.
...
Рейтинг: 0 / 0
05.02.2021, 20:56
    #40042365
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос tempdb на ram диск
Mandarin,

смысла нет, сервер лучше использует память, чем прокладка из операционной системы.
...
Рейтинг: 0 / 0
05.02.2021, 21:46
    #40042377
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос tempdb на ram диск
Еще никто не спросил, почему было решено, что tempdb -- узкое место? И что надо оптимизировать именно эту базу и именно в части io?
...
Рейтинг: 0 / 0
06.02.2021, 16:46
    #40042634
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос tempdb на ram диск
Гавриленко Сергей Алексеевич,

безусловно важный вопрос, но он опоздал, так как автор уже выполнил замену.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перенос tempdb на ram диск / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]