直接访问 SQL Server 中一行的 NULL 位图

Mic*_*Sim 3 sql-server database-internals

我正在阅读检查宽表是否为空的问题,我想知道是否有可能以某种方式直接访问一行的NULL 位图以快速检查一行是否包含 NULL 值。那会是一种可靠的技术吗?

(根据我的阅读,自 SQL Server 2008 以来新引入的 SPARSE 列可能存在问题,但不能确定。)

Rem*_*anu 7

不,没有。此外,这是一种非常非常非常误导的努力。由于您已经在内存中加载了页面,因此您已经为该页面上的任何行和任何列付出了代价。这适用于任何面向行的存储。获取页面的价格压倒了在页面中查找值的价格。

如果您只想优化检索特定列的值(包括它是否为 NULL),那么您需要的是面向列的存储,这是一个完全不同的游戏