Чи є користь для продуктивності розміщення файлів журналів транзакцій на окремому диску?


9

Існує багато публікацій у блогах та статей найкращих практик, що розкривають достоїнства розміщення файлу даних SQL Server на одному жорсткому диску, а журнал транзакцій - на іншому. Причина полягає в тому, що файл бази даних буде відчувати випадкові зчитування та записи, тоді як журнал транзакцій матиме лише послідовне записування.

Але що робити, якщо у вас сотні баз даних? Чи є справжня перевага для продуктивності розміщення сотень файлів журналів транзакцій на окремому диску? Якщо в них записується кілька журналів транзакцій, я думаю, що запис журналу транзакцій буде таким же випадковим, як пише база даних.

Відповіді:


7

Правильно. Теоретично, якщо у вас є 100s БД, вам потрібно 100s накопичувачів, по одному для кожного журналу. На практиці, хоча ніхто не піклується про такий випадок, адже, коли у вас є 100 баз даних, ви, очевидно, не очікуєте високої продуктивності TPC для кожної БД. Ви, ймовірно, матимете кілька БД з високою пропускною здатністю та суворими угодами домовленості, і ви можете мати їх кожен на окремих шпинделях, тоді як безліч угод про рівень обслуговування (SLA) нижчого рівня стискаються на кількох спільних дисках.


2

Журнал транзакцій - це саме те, що ... ведення журналу всіх транзакцій. Як такий, він наповнюється постійно в одному напрямку, поки не перевіряється і не переписується, не обрізається і не переписується. Перезапис послідовний.

Розгляньте ваші файли даних. Запис клієнта може містити замовлення від 5 років тому та одне з 10 років тому. Якщо ви видалите ці замовлення (скажімо, ви архівуєте дані в іншому місці), у поточному блозі ви видалите 1 та видалите 2 за порядком. Однак у файлах даних ви торкнулися блоків, написаних 5 та 10 років тому.

Тож це точно має значення :)


2

Якщо самостійно розмістити журнал транзакцій на окремому диску, ви отримаєте кращі результати, ніж розміщення його разом з іншими файлами даних / журналів. Якщо ви розміщуєте всі журнали на одному диску, ви фактично не робите послідовний IO, а випадковий IO між цими файлами журналу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.