Db2 varchar';s长度对性能有任何影响

Db2 varchar';s长度对性能有任何影响,db2,db2-luw,Db2,Db2 Luw,我们与开发人员讨论了VARCHAR列的使用,因为他们将每个VARCHAR文件定义为VARCHAR(255)、VARCHAR(500)和,。。。远大于磁场的最大长度, varchar的长度对db2中的性能有影响吗?我们发现,对于30字节或更少的列,建议使用char而不是varchar,我们担心的是大于30字节的varchar文件。允许过多的列长度不是一个好主意。比如说,如果允许FirstName列的最大长度为500,那么最终可能会发现一个很长的无关故事,因为如果允许的话,为什么不这样做呢:) 至于

我们与开发人员讨论了VARCHAR列的使用,因为他们将每个VARCHAR文件定义为VARCHAR(255)、VARCHAR(500)和,。。。远大于磁场的最大长度,
varchar的长度对db2中的性能有影响吗?我们发现,对于30字节或更少的列,建议使用char而不是varchar,我们担心的是大于30字节的varchar文件。

允许过多的列长度不是一个好主意。比如说,如果允许
FirstName
列的最大长度为500,那么最终可能会发现一个很长的无关故事,因为如果允许的话,为什么不这样做呢:)

至于性能影响。

唯一的问题可能在这里,如果为数据库打开了(否则不能创建太“宽”的表),并且行的总长度超过了表空间页面大小。一些varchar列值从数据页中取出,将来需要更多IO来访问这样的行。你应该记住这种行为。如果varchar列长度不受控制,则发生此类事件的概率更高

这可能会对按列组织的表的性能产生影响。在列数据引擎中可以处理的总声明宽度有一个限制,如果查询计划中违反了该限制,则查询的其余部分将在行数据引擎中处理