正在进行的赋值语句的效率是多少-4gl

时间:2013-06-14 12:59:08

标签: progress-4gl openedge

为什么assign语句比不使用assign更有效?

同事说:

assign
  a=3
  v=7
  w=8.

比以下更有效:

a=3.
v=7.
w=8.

为什么?

3 个答案:

答案 0 :(得分:3)

你总是可以自己测试并看到......但是,是的,它稍微有点效率。或者这是我最后一次测试它。原因是编译器组合了语句,结果r代码有点小。

但效率几乎总是不太合理的理由。在这里和那里保存一秒钟就可以避免磁盘IO或选择更有效的算法。好理由:

0)回到黑暗时代,每个程序的r代码限制为63k。这是一种减少r代码大小并保持在该限制之下的方法(好吧,这可能不是一个“好”的原因)。另一种方法是,您可以经常避免使用DO ... END对并进一步减少r代码大小。

1)创建记录时,作为索引一部分的字段将在分配时(而不是在事务结束时)写回数据库 - 将所有分配分组到单个语句中有助于避免不一致脏读。 (这可能是仍然这样做的最好理由。)

2)可读性 - 您可以认为对连续分配进行分组可以更清楚地显示您的意图,因此更具可读性。 (我喜欢这个原因,但不是每个人都同意。)

答案 1 :(得分:0)

ASSIGN将多个语句合并为一个。如果a,v和w是数据库中的字段,这意味着它将执行类似INSERT INTO(a,v,w)的操作......

而不是 插入(a)...... INSERT INTO(v)

答案 2 :(得分:0)

基本上做了:

α= 3。

V = 7。

W = 8。

与:

相同

指定a = 3。

指定v = 7。

指定w = 8。

这是3个单独的语句,因此需要更多开销。因此效率较低。