Concerning the issue with RecIds possibly being out of order, I have a solution that I use for my personal queries, and it is very fast.
I have a script that creates a global temp table named ##LedgerDimensions, where the information is pivoted: each LedgerDimension (DimensionAttributeValueCombination record) has only a single row in the global temp table, with the 7 financial dimensions we use as separate columns. I run that script once in the morning, and then throughout the rest of the day all the queries I run that involve lookups of, and filtering on, ledger dimensions are nearly instant; all the hard work has already been done upfront.
However, I also have to update the table before running a query because new ledger dimensions can be added throughout the day; and that requires finding only new records. What I do is get the top 20,000 (I could set it to any number) LedgerDimension values (DimensionAttributeValueCombination RecIds) in my global temp table, in descending order; then among those find the min value; then select from DimensionAttributeValueCombination all RecIds that are greater than that minimum value but are not in the list of top 20,000 LedgerDimensions.
The thing is, even with 7 million rows in DimensionAttributeValueCombination, the entire 'find new rows' part completed in less than 1 second when there were 1,000 new ledger dimensions found.
DECLARE @TopX INT = 20000
DECLARE @MinTopXRecId BIGINT
IF OBJECT_ID('tempdb..#LedgerDimensionsTopX') IS NOT NULL
DROP TABLE #LedgerDimensionsTopX
SELECT TOP (@TopX) LedgerDimension
INTO #LedgerDimensionsTopX
FROM ##LedgerDimensions
ORDER BY LedgerDimension DESC
SELECT @MinTopXRecId = MIN(LedgerDimension)
FROM #LedgerDimensionsTopX
IF OBJECT_ID('tempdb..#RecIdsToProcess') IS NOT NULL
DROP TABLE #RecIdsToProcess
SELECT DAVC.RecId
INTO #RecIdsToProcess
FROM DimensionAttributeValueCombination DAVC
WHERE
DAVC.RecId > @MinTopXRecId
AND
NOT EXISTS (SELECT 'x'
FROM #LedgerDimensionsTopX LDTX
WHERE LDTX.LedgerDimension = DAVC.RecId)
The script then processes only the RecIds in [tag:RecIdsToProcessI], in order to update the global ##LedgerDimensions table.