sql - 在 SQL Server 2008 中打开页面压缩时,int 与 tinyint 有关系吗?

标签 sql sql-server

我想知道在启用页面压缩时将列定义为 tiny int 还是 int 是否重要?

最佳答案

传统上,在页面大小上节省的每一位都意味着一点点速度改进:更窄的行意味着每页更多的行,这意味着更少的内存消耗和更少的 IO 请求,从而提高速度。然而,随着 SQL Server 2008 页面压缩的出现,事情开始变得模糊起来。压缩算法可以将值小于 255 的 4 字节整数压缩到甚至少于一个字节。

行压缩算法会将一个 4 字节的 int 存储在单个字节上,用于小于 127 的值(int 是有符号的),2 字节用于小于 32768 的值,依此类推。

但是,鉴于出色的压缩功能仅在企业版服务器上可用,因此保持使用尽可能小的数据类型的习惯是有意义的。

关于sql - 在 SQL Server 2008 中打开页面压缩时,int 与 tinyint 有关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5777531/

相关文章:

SQL如何在表中间插入新行

sql - 为什么选择嵌套循环会导致 "self join"的执行时间过长

sql - 生成唯一名称的性能问题

sql-server - 如何确定数据库中一组表的最大id

asp.net - LINQ to SQL 执行时间比 SSMS SQL 长 50 倍

sql - 在 SQL Server 中使用动态列查看

sql - 如何在 T-SQL 中执行相当于 "SHOW TABLES"的操作?

sql - 你能在 SQL 中按多行分组吗?

mysql - 如何使用 mysql 在评级系统中获得最高平均值?

sql-server - 如何在 Linux 上跨可用性组副本同步 SQL Server 代理作业?