У моїй базі даних є дуже великі таблиці, але значна частина цих даних "стара".
З-за обставин, що не знаходяться під моїм контролем, мені не дозволяється видаляти ці "старі" дані. Інше обмеження полягає в тому, що я не можу змінювати базу даних, тобто додаю до неї файлові групи. У тому, як зараз стоять речі, все знаходиться на групі PRIMARY
файлів.
Я думав розділити ці таблиці на кілька розділів, таких як "нові", "старі", "заархівовані" тощо. У мене є стовпець "статус", який я хотів би використовувати для цієї мети.
Враховуючи описаний сценарій та обмеження, мені було цікаво, чи має такий розподіл сенс. Іншими словами, якщо моя таблиця розділена таким чином, але всі розділи сидять у одній групі файлів, чи буде SQL Server досить розумним, щоб знайти ту спеціальну область в базовому файлі, де перебувають мої "нові" дані, і не торкатися область зі "старими" даними?
Якщо говорити інакше, якщо, скажімо, 80% моїх даних "старі". Чи є у SQL Server механізм уникнути доступу до 100% базових файлів і лише 20% доступу, що містить "нові" дані (якщо, звичайно, я вказую свій стовпчик розділу в WHERE
пункті запитів).
Я думаю, щоб відповісти на це, потрібно було б зрозуміти, як здійснюється розділення внутрішньо. Я ціную будь-які покажчики.