当前位置: 首页 > 知识库问答 >
问题:

SQL Server十进制数据类型性能

孔俊友
2023-03-14

我有几个表存储了相当大的数字,因此我选择decimal(17,2)作为所有列的数据类型。

架构示例:
Table1(value1,value2,value3,value4,value5)
Table2(value1,value2,value3,value4,value5)

共有1个答案

司马俊晖
2023-03-14

如果您严格地使用十进制类型是因为您使用的是“相当大的数字”,那么您使用十进制类型的原因是错误的。当舍入精度是主要关注点时,使用十进制类型,而不是因为数字很大。实际上,对于非常大的数字,浮点是一个更好的选择,因为它可以容纳更大的数字。就性能而言,您最好的选择是简单地为自己测试它。用100,000行的小数、浮点、实数等填充表并测试查询性能。

 类似资料:
  • 在我的C++程序中,有没有方法使用十进制数据类型,如、或?

  • 问题内容: 在 MySQL 中使用浮点数和十进制数据类型有什么区别?。 我什么时候应该使用哪个? 问题答案: 这是我在有这个疑问时发现的。 小数点在这种情况下完成了应该做的事情,它截断了其余部分,从而失去了 1/3 部分。 所以对于总和,小数更好,但对于除法,浮点数更好,当然,在某种程度上。我的意思是,使用 DECIMAL 不会以任何方式为您提供“失败证明算法”。 希望这可以帮助。

  • 问题内容: 哪种数据类型倾向于代表十进制数字,例如“ 10364055.81”。 如果尝试使用double: 但是,当我尝试打印该数字时,它会显示为“ 1.036405581E7 ”,这是我不想要的。 我应该使用BigDecimal吗?但其显示为 10364055.81000000052154064178466796875 。是否有任何数据类型按原样显示值?同样,该数字可能大于示例中的数字。 顺便

  • 问题内容: 有没有一种类型或方式以二进制级别在oracle中存储数据。我对表中的dml和pl / sql的操作都感兴趣。 当前所有二进制元素都以varchar2(1000)=‘11111 …0000.1111’的形式存储,但是操作和数据存储量很大,因此需要一些优化解决方案。如果此数据可以二进制格式存储,则将需要1000/8字节(具有>700mn条记录) 可能的解决方案是对这些操作使用某种Java

  • 用途: 在字符串与二进制数据之间相互转换 打包和拆包 import struct import binascii values = (1, 'ab'.encode('utf-8'), 2.7) s = struct.Struct('I 2s f') packed_data = s.pack(*values) print('Original values:', values) print('Fo

  • 问题内容: 当我在MySQL中使用浮点和十进制数据类型时,它有什么区别? 我什么时候应该使用哪个? 问题答案: 这是我对此有疑问时发现的。 十进制完全符合这种情况下的预期,截断了其余部分,从而丢失了1/3的部分。 因此对于总和,小数点更好,但是对于除数,浮点数更好,当然到了某种程度。我的意思是,使用DECIMAL不会以任何方式为您提供“防故障算法”。 希望这可以帮助。