[SQL Server] Index partitioning
От: Somescout  
Дата: 25.09.15 08:59
Оценка:
Здравствуйте.

Взялся за разбиение индексов по разделам, и возникло несколько вопросов как всё это в итоге будет работать:
1) Если разбить индекс (например по дате, входящей в ключ), может ли план запроса измениться настолько, что индекс перестанет использоваться либо станет неэффективным с т.з. БД?
2) Понятно, что разбивка наиболее эффективна, когда происходит по первому полю ключа индекса. Если это поле не первое, либо вообще не включено в индекс, то будут просматриваться индексы всех разделов. Влияет ли на производительность количество разделов, если они находятся на одном хранилище (в одной или нескольких файловых группах)? Имеет ли смысл уменьшать количество разделов, т.е. будет ли это влияние сколь-нибудь значимым (сервер на 4-х Ксеонах, памяти >0.5ТБ) или им можно пренебречь?
3) Цель разбивки — вывести архивные данные в отдельные файлы и сжать их, уменьшив объём файла содержащего оперативные данные.
4) С точки зрения архитектуры всего этого: имеет ли смысл делать отдельные схемы разбиения (partition scheme и/или partition function) для разных индексов, даже если они будут разбиваться одинаковым способом?

Ну и на закуску:
Есть 2 таблицы: документ и его строки, дата указана в документе, строки ссылаются на id документа. Есть ли возможность разделить обе таблицы по дате документа и стоит ли вообще смотреть в эту сторону (с учётом того что запрос строк происходит по id документа)? Есть ли смысл разбивать таблицы по каким-либо другим критериям (запись по итогу будет идти во все разделы)?
ARI ARI ARI... Arrivederci!
Отредактировано 25.09.2015 16:36 Somescout . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.