Я хочу создать большую таблицу (около 45 миллиардов строк), к которой всегда обращаются по уникальному ключу.
Вне БД лучшей структурой для хранения этого является Dictionary или HashSet, но, конечно, из-за размера данных это невозможно сделать вне базы данных.
Предоставляет ли SQL Server структуру, оптимизированную для доступа к ключу-значению? Я понимаю, что кластерный ключ очень быстрый, но все же это индекс, и поэтому будут некоторые дополнительные чтения с диска, связанные с обходом страниц индекса. То, что я хотел бы получить от SQL Server, — это «родная» структура, которая хранит данные в виде пар «ключ-значение», а затем позволяет получить доступ к значениям на основе ключей.
Другими словами, мой вопрос заключается в том, как хранить в SQL Server 45 миллиардов строк и эффективно обращаться к ним БЕЗ наличия индекса, кластеризованного или не-кластеризованного, потому что чтение индексных не-конечных страниц может привести к существенным затратам. IO, и поскольку к каждому значению можно получить доступ с помощью уникального ключа, должна быть возможность иметь структуру, в которой хэш ключа разрешается в физическое местоположение значения. Чтобы получить 1 значение, нам нужно было бы выполнить 1 чтение (, если нет коллизий хэшей).
(эквивалентом в Oracle является Hash Cluster)
Спасибо за помощь.