gpt4 book ai didi

sql - 值为 NULL 的列会影响 Microsoft SQL Server 的性能吗?

转载 作者:行者123 更新时间:2023-12-01 22:49:12 25 4
gpt4 key购买 nike

我有一个包含 200 多列的数据表,但是,在其中一半以上的列中,大部分数据行的值为“NULL”。

这些 NULL 值是否会降低 SQL Server 的性能,或者具有 NULL 值的字段与数据表上的所有操作都不相关吗?

最佳答案

表的性能基本上是 I/O 的函数。 SQL Server 在数据页上布置行的方式意味着 NULL 值可能会也可能不会占用空间——具体取决于基础数据类型。 SQL Server 数据页包含每列(甚至是 NOT NULL 列)的可为空位列表,以保留 NULL 信息。

可变长度字符串仅使用NULL位,因此它们在每行中不占用额外空间。其他数据类型确实占用空间,即使是 NULL 值(我相信这包括固定长度字符串)。

这对性能有什么影响?如果有 200 个 NULL 整数字段,则数据页上有 800 个字节。这将给定页面上存储的记录数限制为不超过 10 条记录。因此,如果要读取 100 条记录,查询必须读取(至少)10 个数据页。如果表没有这些列,那么它可能只能读取一个数据页。

这对于给定查询或一组查询是否重要取决于查询。但是,NULL 的列可能会对性能产生影响,特别是在查询的 I/O 方面。

关于sql - 值为 NULL 的列会影响 Microsoft SQL Server 的性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53745544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com