Эквивалент набора хэшей в SQL Server

Я хочу создать большую таблицу (около 45 миллиардов строк), к которой всегда обращаются по уникальному ключу.

Вне БД лучшей структурой для хранения этого является Dictionary или HashSet, но, конечно, из-за размера данных это невозможно сделать вне базы данных.

Предоставляет ли SQL Server структуру, оптимизированную для доступа к ключу-значению? Я понимаю, что кластерный ключ очень быстрый, но все же это индекс, и поэтому будут некоторые дополнительные чтения с диска, связанные с обходом страниц индекса. То, что я хотел бы получить от SQL Server, — это «родная» структура, которая хранит данные в виде пар «ключ-значение», а затем позволяет получить доступ к значениям на основе ключей.

Другими словами, мой вопрос заключается в том, как хранить в SQL Server 45 миллиардов строк и эффективно обращаться к ним БЕЗ наличия индекса, кластеризованного или не-кластеризованного, потому что чтение индексных не-конечных страниц может привести к существенным затратам. IO, и поскольку к каждому значению можно получить доступ с помощью уникального ключа, должна быть возможность иметь структуру, в которой хэш ключа разрешается в физическое местоположение значения. Чтобы получить 1 значение, нам нужно было бы выполнить 1 чтение (, если нет коллизий хэшей).

(эквивалентом в Oracle является Hash Cluster)

Спасибо за помощь.

7
задан user1044169 4 April 2012 в 18:02
поделиться