值为NULL的列是否会影响Microsoft SQL Server的性能?
发布时间:2020-12-13 21:27:27 所属栏目:Windows 来源:网络整理
导读:我有一个包含200多列的数据表,但是,在这些列的一半以上,我的大多数数据行的值都为’NULL’. 那些NULL值会降低我的SQL Server的性能,还是具有NULL值的字段与数据表上的所有操作无关? 表的性能基本上是I / O的函数. SQL Server在数据页上布置行的方式意味着NU
我有一个包含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端. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2008 – Server 2008 R2到Server 2016选项
- xaml – Windows 8 Metro ::什么是AutomationProperties.Au
- windows-server-2012 – Robocopy – 覆盖所有文件,除非目标
- windows-server-2008-r2 – Windows Server 2008 R2图元文件
- 在Windows上安装配置MongoDB
- 从源代码安装R包,无需更改PATH(Windows)
- 数据绑定 – 数据绑定0x8000ffff上的wp7奇怪UnhandledExcep
- windows – 如何删除oracle中的.dbf文件?
- windows – 在堆栈上分配更多页面大小的缓冲区会破坏内存吗
- DirectX11 With Windows SDK--18 使用DirectXCollision库进
推荐文章
站长推荐
- wix – 安装MSI时可能导致错误2902的原因是什么?
- winapi – 如何通过Win32对话框以编程方式更改标
- Microsoft Visual C,编译没有项目文件的小源代码
- Windows cmd echo/pipe最后会增加额外的空间 –
- remote-desktop – 使用RDP连接到Windows Server
- windows-server-2008 – 64位操作系统上的32位进
- Windows 环境下怎样安装 Java
- windows – 你如何释放被死进程打开的端口?
- 在Windows和Linux机器上使用Java程序创建新文件夹
- windows-phone-8 – 在c#crashing应用程序中的fa
热点阅读