如果我采用更大的数据类型,我知道我应该采用足以满足我将插入到表中的可能值的数据类型,这将在速度或任何其他方面影响 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/