sql-server - 在根本不需要的情况下,对更大数据类型的使用进行性能测量的统计分析

标签 sql-server database performance statistics types

如果我采用更大的数据类型,我知道我应该采用足以满足我将插入到表中的可能值的数据类型,这将在速度或任何其他方面影响 sql server 中的任何性能。

例如。

IsActive (0,1,2,3) not more than 3 in any case.

我知道我必须使用 tinyint 但由于某些原因认为它是强制性的,我将每个数字字段都作为 bigint 和每个 字符 字段为 nVarchar(Max)

如果可能,请给出统计数据,让我尝试克服这种强制症。

我需要一些可靠的分析,才能真正让人们在采用任何数据类型之前重新思考。

编辑

说,我在用

SELECT * FROM tblXYZ where IsActive=1

它将如何受到影响。假设我有 100 万条记录 它是否只会浪费内存或浪费性能。 我知道更多的页面数量需要更多的索引工作,因此性能也会受到影响。但如果可能的话,我需要一些统计数据。

最佳答案

在 bigint 上,您基本上每行浪费 7 个字节,这将使您的表更大,因此每页存储的内容更少,因此如果您使用 tinyint,将需要更多的 IO 来恢复相同数量的行。如果你有十亿行表,它会加起来

关于sql-server - 在根本不需要的情况下,对更大数据类型的使用进行性能测量的统计分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2997574/

相关文章:

database - 断言 dbfit 测试空结果正确的方法

iphone - 想要创建一个带有数据库的 iPhone 应用程序来保存拍摄的照片

json - 如何使用 PowerShell 在没有索引的情况下访问 JSON 文件中的数组对象

SQL Server - 如何从日期时间字段中选择日期时间

c# - 将连接字符串存储在数据库中并在应用程序启动时检索它

php - 多个数据库查询串在一起

c++ - 使用 OpenGL 比较两个图像

c# - 匿名实例化语法——好还是坏?

laravel - 加速 Eloquent 查询

sql-server - EXEC 的费用是多少?