【发布时间】:2019-08-07 15:20:57
【问题描述】:
我正在为我的应用程序开发一项新功能,我需要将一些新数据添加到我的数据库 DB2。
我已经有 1 个包含大约 50 列的表格,我将在其中将我的数据显示在我的屏幕上。我还需要 20 列来实现我的新功能。 我总是会得到 1 行,每次只更新/插入 1 行。
哪一个性能最好?在我已经拥有的表中创建 30 列或创建一个新的 30 列“子表”。如果选项是 2 号,那么更新数据的最佳性能方式是什么? 多个更新或连接更新(如果可能)?
编辑: 更正:我的原始表格有 54 列
原始 30 列和 20 列的插入/更新频率。 我不知道您所说的频率是什么意思,但它平均每 10 或 20 秒更新一次。 (编辑:如果我使用旧功能,我将始终更新所有 30 个原始列。如果我使用新功能,我将需要更新所有 50 列(30 个旧 + 20 个新列)
是否一次更改所有 50 列。 是的,所有列都会立即更改
系统上的查询负载。 不明白你的意思
存在索引(这会减慢更新速度)。 原表有4个索引
所有原始行是否都会有额外的 20 列。 并非所有行都需要额外的列
典型行长: 3 的字符和 3 的小数
【问题讨论】:
-
什么 Db2?有哪些类型?典型的行长?桌子尺寸?数据页大小?有多少并行用户?以后添加新“功能”的可能性有多大,需要新列...?
-
最大行长度 150(基于典型的列长度:3 个字符和 3 个小数)。不需要单独的表。使用多个表会使编程复杂化。在性能方面,基于最大行长度,单个表优于多个表。
标签: sql performance db2 sql-update sql-insert