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

Откуда: Russia, Moscow
Сообщений: 56
Добрый день,

Возник вопрос: какими порциями данных SQL обменивается с диском.
В подсознании сидит цифра 64к, но когда попытался найти ее обоснование, то не смог:
- у Microsoft нашел такие статьи:
https://docs.microsoft.com/ru-ru/sql/relational-databases/pages-and-extents-architecture-guide
https://docs.microsoft.com/ru-ru/sql/relational-databases/reading-pages
https://docs.microsoft.com/ru-ru/sql/relational-databases/writing-pages

Из которых явно не следует, что даже операции чтения выполняются блоками по 64к – сказано только, что работа с данными происходит на уровне страниц – т.е. 8к. И есть опережающее чтение, которое может читать до 512к за раз, но минимум видимо 8к, а не 64, по крайней мере при чтении индексов.
Работа с логом вероятно происходит еще более мелкими порциями – по одной записи.

Поделитесь, если знаете, умными статьями от MS где более четко описан физический обмен с диском, и можно ли какими-то настройками влиять на размер порций обмена с диском?

p.s. Вопрос возник по 2012 версии, но думаю с 2000-2005 мало что менялось в этой части.

-------------------------------------
Что не делается, все к лучшему.
2 окт 17, 10:18    [20835542]     Ответить | Цитировать Сообщить модератору
 Re: Как SQL сервер работает с диском?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 3608
Denis,

читает экстентами 8станиц по 8кб = 64кб. Но чаще всего берёт сразу и соседние
2 окт 17, 10:25    [20835565]     Ответить | Цитировать Сообщить модератору
 Re: Как SQL сервер работает с диском?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 34994
Читает по-разному. Сами можете посмотреть в sys.dm_os_virtual_file_stats.
2 окт 17, 11:48    [20835850]     Ответить | Цитировать Сообщить модератору
 Re: Как SQL сервер работает с диском?  [new]
aleksrov
Member

Откуда:
Сообщений: 452
Denis,
Читайте
https://www.codeproject.com/Articles/630346/Understanding-how-SQL-Server-executes-a-query
2 окт 17, 11:52    [20835861]     Ответить | Цитировать Сообщить модератору
 Re: Как SQL сервер работает с диском?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 5145
Denis,

больше 64к не прыгнете, максимальный размер кластера NTFS.
3 окт 17, 15:03    [20839199]     Ответить | Цитировать Сообщить модератору
 Re: Как SQL сервер работает с диском?  [new]
a_shats
Member

Откуда: Москва
Сообщений: 809
Владислав Колосов,

Причем тут кластеры NTFS ???
Один экстент - это не одна страница и не один кластер.

Denis,
Цифра "64" засела со времен SQL 2000, когда действительно был обмен с дисковой данными блоками 8 х 8КБайт (страница) и логом 2 х 2КБайт.
По умолчанию оно, конечно, и сейчас может быть так - но этот параметр давно уже изменяемый.
3 окт 17, 15:42    [20839343]     Ответить | Цитировать Сообщить модератору
 Re: Как SQL сервер работает с диском?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 3608
автор
Один экстент - это не одна страница и не один кластер.

декада судя по всему?

автор
По умолчанию оно, конечно, и сейчас может быть так - но этот параметр давно уже изменяемый.

где? можно сделать меньше 64к?
3 окт 17, 15:45    [20839353]     Ответить | Цитировать Сообщить модератору
 Re: Как SQL сервер работает с диском?  [new]
Колян Козлов
Member

Откуда:
Сообщений: 96
Можно ориентироваться по числу логических чтений в плане запроса.

Одно логическое чтение = 8Кб.


Правда данные могут быть и закэшированы и фрагментированы.
3 окт 17, 15:47    [20839362]     Ответить | Цитировать Сообщить модератору
 Re: Как SQL сервер работает с диском?  [new]
invm
Member

Откуда: Москва
Сообщений: 7459
Denis,

https://blog.purestorage.com/what-is-sql-servers-io-block-size/
3 окт 17, 15:50    [20839372]     Ответить | Цитировать Сообщить модератору
 Re: Как SQL сервер работает с диском?  [new]
a_shats
Member

Откуда: Москва
Сообщений: 809
TaPaK
автор
Один экстент - это не одна страница и не один кластер.

декада судя по всему?

автор
По умолчанию оно, конечно, и сейчас может быть так - но этот параметр давно уже изменяемый.

где? можно сделать меньше 64к?

А зачем это вообще делать, если не секрет ? Уменьшать, в смысле, объем одного экстента ? Когда все стремятся прочитать блоками побольше и переложить их попоследовательней.
3 окт 17, 15:55    [20839384]     Ответить | Цитировать Сообщить модератору
 Re: Как SQL сервер работает с диском?  [new]
o-o
Guest
Колян Козлов
Можно ориентироваться по числу логических чтений в плане запроса.
Одно логическое чтение = 8Кб.
Правда данные могут быть и закэшированы и фрагментированы.

козловский, ты не поверишь, но логическое чтение это как раз из кэша
3 окт 17, 15:56    [20839387]     Ответить | Цитировать Сообщить модератору
 Re: Как SQL сервер работает с диском?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 3608
a_shats
TaPaK
пропущено...

декада судя по всему?

пропущено...

где? можно сделать меньше 64к?

А зачем это вообще делать, если не секрет ? Уменьшать, в смысле, объем одного экстента ? Когда все стремятся прочитать блоками побольше и переложить их попоследовательней.

размер экстента можно менять?
3 окт 17, 15:57    [20839394]     Ответить | Цитировать Сообщить модератору
 Re: Как SQL сервер работает с диском?  [new]
o-o
Guest
TaPaK
размер экстента можно менять?

ну если только пересчитать на декады.
а так определением прибито: экстетнт = 8 страниц
3 окт 17, 16:29    [20839502]     Ответить | Цитировать Сообщить модератору
 Re: Как SQL сервер работает с диском?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 3608
o-o
TaPaK
размер экстента можно менять?

ну если только пересчитать на декады.
а так определением прибито: экстетнт = 8 страниц

ну блииин
3 окт 17, 16:31    [20839508]     Ответить | Цитировать Сообщить модератору
 Re: Как SQL сервер работает с диском?  [new]
aleksrov
Member

Откуда:
Сообщений: 452
o-o
TaPaK
размер экстента можно менять?

ну если только пересчитать на декады.
а так определением прибито: экстетнт = 8 страниц


При пересчете на декады нет однозначного способа верно посчитать.
3 окт 17, 17:08    [20839675]     Ответить | Цитировать Сообщить модератору
 Re: Как SQL сервер работает с диском?  [new]
Критик
Member

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

зачем вам? все равно не сможете это изменить,
лучше бы сказали, какую задачу решаете
4 окт 17, 07:29    [20840756]     Ответить | Цитировать Сообщить модератору
 Re: Как SQL сервер работает с диском?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 5145
Критик,

да небось на собеседовании не знали, как отделаться.
4 окт 17, 10:34    [20841163]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить