【问题标题】:Does varchar's length have any effect on performancevarchar 的长度对性能有影响吗
【发布时间】:2019-10-20 06:35:10
【问题描述】:

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

【问题讨论】:

    标签: db2 db2-luw


    【解决方案1】:

    允许过多的列长度不是一个好主意。如果你允许,比方说,FirstName 列的最大长度为 500,你最终可能会在那里找到一个相当长的不相关的故事,因为如果允许的话为什么不呢:)

    至于性能影响。
    唯一的问题可能在这里,如果为数据库打开了Extended row size(否则您根本无法创建太“宽”的表),并且行的总长度超过了表空间页面大小。一些 varchar 列值从数据页中取出,将来需要更多的 IO 才能访问这样的行。你应该记住这样的行为。在不受控制的 varchar 列长度的情况下,此类事件的概率更高。

    【讨论】:

      【解决方案2】:

      这可能会对 ORGANIZE BY COLUMN 表造成性能影响。可以在列数据引擎中处理的声明的总宽度存在限制,如果在查询计划中违反此限制,则查询的其余部分将在行数据引擎中处理。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-13
        • 2010-12-05
        • 1970-01-01
        • 2011-11-12
        • 2014-01-05
        相关资源
        最近更新 更多