Det här kanske inte svarar på din fråga direkt, men om du har flera dimensioner som är nära besläktade och ofta används tillsammans, kan du konsolidera dem till en "minidimension " som har alla möjliga kombinationer av territorium, distributör och återförsäljare (se mitt svar till en annan fråga ):
create table dbo.DIM_TerritorySalesChannels (
TerritorySalesChannelID int not null primary key,
TerritoryName nvarchar(100) not null,
RetailerName nvarchar(100) not null,
DistributorName nvarchar(100) not null,
/* other attributes */
)
Detta kan till en början verka besvärligt, men det är faktiskt ganska lätt att fylla i och hantera a> och det undviker komplexiteten i relationer mellan dimensioner, som ofta blir rörig (som du har upptäckt). Uppenbarligen får du en väldigt stor dimension istället för tre mindre, men som jag nämnde i det andra svaret har vi flera hundra tusen rader i en dimension och det har aldrig varit ett problem för oss.