Назад | Перейти на главную страницу

Почему страницы SQL Server 8 КБ?

По словам Марка Руссиновича из книги «Windows Internals 5th Edition», Windows использует (маленькие) страницы размером 4 КБ на архитектурах x86 и x64 для управления памятью. Хотя я не могу найти для этого причину, интуитивно я бы подумал, что SQL Server будет использовать тот же размер для своих собственных страниц, но вместо этого он использует размер страницы 8 КБ.

Я исследовал документацию и сообщения в блогах, но не смог найти объяснения такому поведению. Все, что я смог найти, это то, что так оно и есть.

Я определенно не утверждаю, что это хорошо или плохо (и я в любом случае не в состоянии этого сделать), мне просто любопытно, и я хотел бы узнать мотивацию, которая привела к этому решению.

Какова техническая причина выбора размера страницы 8 КБ для SQL Server? Почему у него хороший размер страницы? Или, может быть, это просто наследство от Sybase?

Как это решение влияет на производительность SQL Server (имеется в виду, как он взаимодействует с системной памятью и диском внутри)?

Моя вторая мысль была бы связана с подсистемой хранения, но я все еще не уверен. (NTFS имеет размер кластера по умолчанию 4 КБ)

Моя первая мысль была бы связана с дисковым хранилищем, но я не уверен, так как думаю, что NTFS также имеет размер кластера 4 КБ.

Нет, у него есть настраиваемый размер кластера, и любой администратор базы данных sql-сервера с долей скептицизма установил его до 64 КБ для разделов файлов базы данных.

Насколько мне известно, сама Windows использует (маленькие) страницы размером 4 КБ как на x86, так и на x64 архитектурах.

Нет, он БЫЛ размером 4 КБ, затем был перемещен в 8 КБ, чтобы уменьшить накладные расходы. Они также управляются в объеме 64 кг (8 страниц по 8 КБ), которые всегда читаются и записываются одновременно. Это означает, что размер кластера NTFS в 64 КБ для SQL Server идеален;)

В конце концов, речь идет о согласовании с назначениями и сокращении накладных расходов, и это то, где предполагалось, что это золотая середина.