Индексы в хранилище данных - PullRequest
0 голосов
/ 12 июня 2009

Я создаю витрину данных в SQL Server 2008, используя SSIS для загрузки и SSAS для куба OLAP. Пока все работает отлично. Однако в исходной базе данных я не создал никаких индексов, кроме кластеризации по умолчанию для первичного ключа.

Мне довольно удобно создавать индексы для баз данных приложения, но поскольку эта база данных предназначена для использования в качестве источника для куба, я не уверен, какой тип индексации, если таковой будет, будет полезен.

Есть ли какой-нибудь вид индексации, который я должен сделать, чтобы улучшить обработку измерений и куба? Я использую ваше обычное хранилище Molap.

1 Ответ

1 голос
/ 12 июня 2009

Как правило, рекомендуется не указывать индексы и ограничения на витринах, если только они не будут использоваться непосредственно для отчетов. Индексы и ограничения могут серьезно связать ваше время ETL (особенно с объемами данных, которые обычно поступают на склады).

Лучшее, что я нашел, - это иметь один отдельный PK на всех ваших столах (включая факт, потому что у меня есть составные ключи, и я просто хеширую составные, чтобы получить себе PK, если мне придется ). Наличие PK (то есть столбцов идентификаторов) предоставляет вам автоматически сгенерированный индекс, быстрое объединение при построении кубов и очень быструю вставку.

Если вы собираетесь составлять отчеты, то создайте индексы, как вы, но не забудьте отключить, а затем перестроить индексы как часть процесса ETL. В противном случае массовая вставка может занять некоторое время (в некоторых случаях час за часом).

...