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

Откуда:
Сообщений: 387
Занимался оптимизацией работы с Waits. У меня в топе стояли
buffer latch , buffer i\o , logging
По latch нашел статьи о необходимости файлы tempdb разбивать на файлы равные количеству ядер (либо подбирать экспериментально в зависимости от структуры приложения)
https://www.simple-talk.com/sql/database-administration/optimizing-tempdb-configuration-with-sql-server-2012-extended-events/
Тестовое приложение, которое интенсивно пишет данные в журнал проводок (1С) с нескольких десятков одинаковых фоновых заданий , стало работать существенно быстрее - раза в 2
Вопрос 1 по Latch насколько правильно сделать такое же разбиение для Log файлов для режима бэкапирования Simple? Или log пишется последовательно?
Вопрос 2 правильно ли я понимаю что поделить файл данных (таблицы + индексы) на несколько уже не даст такого эффекта т.е. SQL будет стремится выделять страницы для одной таблицы в одном файле даже если есть возможность распределить по нескольким
15 сен 15, 17:52    [18152587]     Ответить | Цитировать Сообщить модератору
 Re: Про ожидания Buffer latch и логику MS SQL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
selis76
Или log пишется последовательно?
This.
selis76
SQL будет стремится выделять страницы для одной таблицы в одном файле даже если есть возможность распределить по нескольким
Страницы выделяются пропорционально свободному месту в файлах.
15 сен 15, 18:01    [18152617]     Ответить | Цитировать Сообщить модератору
 Re: Про ожидания Buffer latch и логику MS SQL  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
Гавриленко Сергей Алексеевич
selis76
SQL будет стремится выделять страницы для одной таблицы в одном файле даже если есть возможность распределить по нескольким
Страницы выделяются пропорционально свободному месту в файлах.

Для одной и той же ФГ. А так я понял, что ТС хочет вынести таблицы в одну ФГ, индексы в другую и размазаться по дисковой подсистеме.
16 сен 15, 09:25    [18154471]     Ответить | Цитировать Сообщить модератору
 Re: Про ожидания Buffer latch и логику MS SQL  [new]
selis76
Member

Откуда:
Сообщений: 387
stavgreengo
Гавриленко Сергей Алексеевич
пропущено...
Страницы выделяются пропорционально свободному месту в файлах.

Для одной и той же ФГ. А так я понял, что ТС хочет вынести таблицы в одну ФГ, индексы в другую и размазаться по дисковой подсистеме.

Ну индексы вынести в отдельную файловую группу это само собой.
По файлам данных у меня более глубокий вопрос - допустим при проведении документов работает 4 десятка фоновых заданий (каждый обрабатывает свой пакет документов) т.е. идут запросы на чтение \запись из 40 процессов. Т.е. жесткий OLTP.
Как я понимаю данные для которых зафиксированы транзакции сбрасываются из буфера в файл на диске специальным потоком SQL Server (у меня один файл данных для всех таблиц приложения)
Вопрос 1 - если файлов данных будет несколько и таблица будет размазана по файлам : какая разница с точки зрения Latch сбрасывать зафиксированные данные в один файл или несколько? Вроде при фиксации транзакций данные сбрасываются крупными блоками
Вопрос 2 Чем с точки зрения Latch отличается Tempdb от обычного файла базы данных?
16 сен 15, 13:01    [18155576]     Ответить | Цитировать Сообщить модератору
 Re: Про ожидания Buffer latch и логику MS SQL  [new]
o-o
Guest
selis76
сбрасывать зафиксированные данные в один файл или несколько? Вроде при фиксации транзакций данные сбрасываются крупными блоками

данные сбрасываются не по коммиту,
а по чекпойнту или при заполнении Buffer Pool
(будете в 1 транзакции 400 Гиг переливать при памяти в 48Гиг,
неужто на диск ничего не пойдет и будет ждать коммит?
ну или наоборот: 1 байт изменили в транзакции, теперь что, по коммиту бежать его на диск писать?)
а в разные файлы хорошо писать, когда они на разных дисках
16 сен 15, 13:22    [18155713]     Ответить | Цитировать Сообщить модератору
 Re: Про ожидания Buffer latch и логику MS SQL  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
o-o
selis76
сбрасывать зафиксированные данные в один файл или несколько? Вроде при фиксации транзакций данные сбрасываются крупными блоками

данные сбрасываются не по коммиту,
а по чекпойнту или при заполнении Buffer Pool


+
еще lazywriter потихоньку может скидывать. при minimally logged тоже на диск пишутся страницы.
16 сен 15, 13:27    [18155752]     Ответить | Цитировать Сообщить модератору
 Re: Про ожидания Buffer latch и логику MS SQL  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
selis76

Вопрос 1 - если файлов данных будет несколько и таблица будет размазана по файлам : какая разница с точки зрения Latch сбрасывать зафиксированные данные в один файл или несколько? Вроде при фиксации транзакций данные сбрасываются крупными блоками

Вопрос 2 Чем с точки зрения Latch отличается Tempdb от обычного файла базы данных?



там, откуда вы этого нахватались, речь шла, о другом.

вот нормальная инфа

Misconceptions around TF 1118
Temporary Table Caching Explained
16 сен 15, 13:50    [18155904]     Ответить | Цитировать Сообщить модератору
 Re: Про ожидания Buffer latch и логику MS SQL  [new]
selis76
Member

Откуда:
Сообщений: 387
o-o
selis76
сбрасывать зафиксированные данные в один файл или несколько? Вроде при фиксации транзакций данные сбрасываются крупными блоками

данные сбрасываются не по коммиту,
а по чекпойнту или при заполнении Buffer Pool
(будете в 1 транзакции 400 Гиг переливать при памяти в 48Гиг,
неужто на диск ничего не пойдет и будет ждать коммит?
ну или наоборот: 1 байт изменили в транзакции, теперь что, по коммиту бежать его на диск писать?)
а в разные файлы хорошо писать, когда они на разных дисках

Согласен - неточно выразился
16 сен 15, 14:00    [18156037]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить