我正在阅读检查宽表是否有空值的问题,我想知道是否有可能以某种方式直接访问一行的NULL 位图以快速检查一行是否包含 NULL 值。那是一种可靠的技术吗?
(根据我的阅读,自 SQL Server 2008 以来新引入的 SPARSE 列可能存在问题,但不能确定。)
我正在阅读检查宽表是否有空值的问题,我想知道是否有可能以某种方式直接访问一行的NULL 位图以快速检查一行是否包含 NULL 值。那是一种可靠的技术吗?
(根据我的阅读,自 SQL Server 2008 以来新引入的 SPARSE 列可能存在问题,但不能确定。)
不,没有。此外,这是一种非常非常非常误导的努力。由于您已经将页面加载到内存中,因此您已经为该页面上的任何行和任何列付出了代价。这对于任何面向行的存储都是给定的。获取页面的价格超过了在页面中查找值的价格。
如果你想优化检索特定列的值(包括它是否为 NULL),那么你要求的是面向列的存储,这是一个完全不同的游戏。