我想创建一个大表(约450亿行),该表始终由唯一键访问。
在数据库之外,最好用于保存此数据的结构是字典或哈希集,但由于数据的大小,因此无法在数据库之外执行此操作。
SQL Server是否提供了针对键值访问进行优化的结构?我知道聚集键非常快,但它仍然是索引,因此遍历索引页面会有一些额外的磁盘读取。我想从SQL Server中获得的是一种“本地”结构,它将数据存储为键值对,然后使根据键访问值成为可能。
换句话说,我的问题是如何在没有索引的情况下在SQL Server中存储450亿行数据并有效地访问它们,因为读取索引非叶子页可能导致大量IO,并且由于每个值都可以通过唯一键访问,所以应该可以拥有一种哈希键解析为值物理位置的结构。要获取1个值,我们需要执行1次读取(除非存在哈希冲突)。
(Oracle中的等效项是哈希集群)
感谢您的帮助。
在数据库之外,最好用于保存此数据的结构是字典或哈希集,但由于数据的大小,因此无法在数据库之外执行此操作。
SQL Server是否提供了针对键值访问进行优化的结构?我知道聚集键非常快,但它仍然是索引,因此遍历索引页面会有一些额外的磁盘读取。我想从SQL Server中获得的是一种“本地”结构,它将数据存储为键值对,然后使根据键访问值成为可能。
换句话说,我的问题是如何在没有索引的情况下在SQL Server中存储450亿行数据并有效地访问它们,因为读取索引非叶子页可能导致大量IO,并且由于每个值都可以通过唯一键访问,所以应该可以拥有一种哈希键解析为值物理位置的结构。要获取1个值,我们需要执行1次读取(除非存在哈希冲突)。
(Oracle中的等效项是哈希集群)
感谢您的帮助。