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

Откуда:
Сообщений: 598
Недавно пользовал sys.dm_io_virtual_file_stats для анализа IO.
Не до конца улавливаю смысл нескольких соотношений:

1) почему среднее время задержки на запись в файл данных tempdb в десятки раз больше, чем на чтение?

2) чем объясняется, что среднее время задержки на запись в лог файл пользовательской базы данных (практически любой) в десятки раз меньше, чем на чтение?
Для лог файлов существует приоритет записи?

Пример:
database	file type	io_stall_read_ms	num_of_reads	avg_read_stall_ms	io_stall_write_ms	num_of_writes	avg_write_stall_ms
tempdb		DATA		73434727		17129008	4.3			2279345689		18646952	122.2
tempdb		LOG		66717			19335		3.5			5106339			539332		9.5
db1		DATA		2531562341		75437148	33.6			352117512		13338977	26.4
db1		LOG		12673095		222345		57			52619845		31275191	1.7
db2		DATA		10530694		937936		11.2			4167028			241914		17.2
db2		LOG		258960			8624		30			609233			214359		2.8

3) в sys.dm_io_virtual_file_stats существует колонка sample_ms, которая вроде как показывает время прошедшее со времени запуска сервера (инфа из БОЛ). Однако это не так, реально получается время в разы меньшее. Кто знает, что эта цифра показывает?
11 ноя 09, 01:04    [7911240]     Ответить | Цитировать Сообщить модератору
 Re: IO в tempdb  [new]
aleks2
Guest
1. TempDB не записывает в файл НИЧЕГО покеда не припрет (т.е. не лэзет в память уже). Ибо времянка и шоб быстрее работало...

2. В любую ДРУГУЮ базу запись производится НЕМЕДЛЕННО, пока не запишем - ничо не делаем дальше. Ибо нетленка и шоб ничо не пропало...
11 ноя 09, 08:57    [7911576]     Ответить | Цитировать Сообщить модератору
 Re: IO в tempdb  [new]
Idol_111
Member

Откуда:
Сообщений: 598
aleks2
1. TempDB не записывает в файл НИЧЕГО покеда не припрет (т.е. не лэзет в память уже). Ибо времянка и шоб быстрее работало...

2. В любую ДРУГУЮ базу запись производится НЕМЕДЛЕННО, пока не запишем - ничо не делаем дальше. Ибо нетленка и шоб ничо не пропало...

Извините, ничего не понял. Можно объяснить как-то с другой стороны, пожалуйста?
Обращаю Ваше внимание, что в первом вопросе речь идет о файле с данными, а во втором а лог файле.
11 ноя 09, 10:00    [7911829]     Ответить | Цитировать Сообщить модератору
 Re: IO в tempdb  [new]
Wizandr
Member

Откуда: Империя Добра
Сообщений: 37004
aleks2
1. TempDB не записывает в файл НИЧЕГО покеда не припрет (т.е. не лэзет в память уже). Ибо времянка и шоб быстрее работало...

2. В любую ДРУГУЮ базу запись производится НЕМЕДЛЕННО, пока не запишем - ничо не делаем дальше. Ибо нетленка и шоб ничо не пропало...


А как жеж транзакшн лог?
11 ноя 09, 10:31    [7912001]     Ответить | Цитировать Сообщить модератору
 Re: IO в tempdb  [new]
aleks2
Guest
Idol_111
aleks2
1. TempDB не записывает в файл НИЧЕГО покеда не припрет (т.е. не лэзет в память уже). Ибо времянка и шоб быстрее работало...

2. В любую ДРУГУЮ базу запись производится НЕМЕДЛЕННО, пока не запишем - ничо не делаем дальше. Ибо нетленка и шоб ничо не пропало...

Извините, ничего не понял. Можно объяснить как-то с другой стороны, пожалуйста?
Обращаю Ваше внимание, что в первом вопросе речь идет о файле с данными, а во втором а лог файле.


Не стоит разделять файл с данными и лог-файл - это все единая база данных.
11 ноя 09, 11:11    [7912356]     Ответить | Цитировать Сообщить модератору
 Re: IO в tempdb  [new]
Idol_111
Member

Откуда:
Сообщений: 598
aleks2
Idol_111
aleks2
1. TempDB не записывает в файл НИЧЕГО покеда не припрет (т.е. не лэзет в память уже). Ибо времянка и шоб быстрее работало...

2. В любую ДРУГУЮ базу запись производится НЕМЕДЛЕННО, пока не запишем - ничо не делаем дальше. Ибо нетленка и шоб ничо не пропало...

Извините, ничего не понял. Можно объяснить как-то с другой стороны, пожалуйста?
Обращаю Ваше внимание, что в первом вопросе речь идет о файле с данными, а во втором а лог файле.


Не стоит разделять файл с данными и лог-файл - это все единая база данных.

Что-то я Вас совсем не понимаю, уж извините.

Я тут пытаюсь выяснить про ввод/вывод, а вы как то больше о "философии" :).
И с точки зрения IO файлы данных и логи как раз и надо рассматривать отдельно.

1) Хорошо, пускай в tempdb сбрасывается все, что не лезет в память. Так почему когда он это помещает туда, времени уходит больше, чем когда он это потом забирает?

2) что вообще сервер читает из лог файлов и почему с таким скрипом?
11 ноя 09, 14:37    [7914379]     Ответить | Цитировать Сообщить модератору
 Re: IO в tempdb  [new]
aleks2
Guest
Панимаешь, дарогой, тута можно много гипотез построить. Деталей процесса MS не оглашает.
Да и зачем тебе ЭТО?

Например,
1) Патамушта в Windows есть много всяких асинхронных способов записи в файл, дык TempDB юзает их и засекает время от момента запуска асинхронного процесса до момента окончания, а асинхронная запись ведется системой с низким приоритетом и занимает изрядно времени.

2) Таблицы INSERTED и DELETED, например. Гипотезу относительно "скрипа" мне строить лень...

Ну и наконец главное: среднее по какому месту там указано? Есть сильное подозрение, что это "среднее по штукам попыток записи/чтения", тады разницу можно еще объяснять разным размером данных под единичную запись.
11 ноя 09, 14:53    [7914541]     Ответить | Цитировать Сообщить модератору
 Re: IO в tempdb  [new]
Yo.!
Guest
Idol_111,

в темпдб пишутся времянки, сортировки, курсоры, версии строк от снепшнота и т.п. головка hdd елозится по всему файлику, а в датафайлы у вас запись может идти достаточно последовательно, допустим апдейты редкость, одни инсерты. последовательная запись вполне может дать выигрыш на порядок (относительно датафайлов других баз), особливо если это еще как scattered write прошло. с чтением та же ботва scattered read дает на порядок интересней скорость, видно из темдб особо разогнать scattered read не получается.
11 ноя 09, 14:53    [7914546]     Ответить | Цитировать Сообщить модератору
 Re: IO в tempdb  [new]
Александр Волок (def1983)
Member

Откуда: Rotterdam
Сообщений: 4959
aleks2
2. В любую ДРУГУЮ базу запись производится НЕМЕДЛЕННО, пока не запишем - ничо не делаем дальше. Ибо нетленка и шоб ничо не пропало...


А что ж тогда делать с этими системными процессами?

  • Lazy writer
  • Ghost cleanup
  • Checkpoint

    Запускаются и запускаются...
  • 11 ноя 09, 14:55    [7914557]     Ответить | Цитировать Сообщить модератору
     Re: IO в tempdb  [new]
    aleks2
    Guest
    Александр Волок (def1983)
    aleks2
    2. В любую ДРУГУЮ базу запись производится НЕМЕДЛЕННО, пока не запишем - ничо не делаем дальше. Ибо нетленка и шоб ничо не пропало...


    А что ж тогда делать с этими системными процессами?

  • Lazy writer
  • Ghost cleanup
  • Checkpoint

    Запускаются и запускаются...


  • А что вам хочется с ними сделать?
    11 ноя 09, 15:07    [7914647]     Ответить | Цитировать Сообщить модератору
     Re: IO в tempdb  [new]
    Idol_111
    Member

    Откуда:
    Сообщений: 598
    aleks2
    Ну и наконец главное: среднее по какому месту там указано? Есть сильное подозрение, что это "среднее по штукам попыток записи/чтения", тады разницу можно еще объяснять разным размером данных под единичную запись.

    Вы абсолютно правы посчитано было по штукам. Пересчитал по байтам.
    Результат:
    1) в tempdb соотношение практически не изменилось
    2) в лог файлах ситуация выравнилась или даже изменилась на противоположную. В любом случае разбег уже не в десятки раз, а лишь в разы.

    Спасибо за подсказку. Бездумно взял код из белых страниц майкрософта.
    12 ноя 09, 04:45    [7917637]     Ответить | Цитировать Сообщить модератору
     Re: IO в tempdb  [new]
    Idol_111
    Member

    Откуда:
    Сообщений: 598
    Yo.!
    Idol_111,
    в темпдб пишутся времянки, сортировки, курсоры, версии строк от снепшнота и т.п. головка hdd елозится по всему файлику.

    Согласен, что елозит, но почему она это делает только при записи, а при чтении значится не елозит? :)

    Scatter/Gather технология по идее работает как на чтение, так и на запись.
    12 ноя 09, 05:14    [7917646]     Ответить | Цитировать Сообщить модератору
    Все форумы / Microsoft SQL Server Ответить