将计算从 VBA 迁移到 SQL?
Migrate calculations from VBA to SQL?
我使用一些 VBA 代码管理基于 Access 构建的应用程序,这些代码从以下位置获取数据:
- 用户通过 Access 表单输入
- Sybase 中的表(通过 Access 链接)
- Access 中的本地表
该应用程序用于进行一些财务计算。我们的计算需要很多条件,而且大多是一些复杂的计算(分数,乘法...)
我的问题是:在计算方面 VBA 比 Sybase 快吗?
(请注意,当我们进行计算时,它需要我们的 3 种数据源)
我正在考虑将所有计算作为一些存储过程迁移到 Sybase,然后使用参数从 VBA 代码调用它,然后等待 Sybase 的输出。
PS:我问这个问题的另一个原因是因为我们认为将 Access 应用程序迁移到瘦客户端(可能基于 Web)是一个长期项目,如果所有计算都已经完成在 server/database 方面可能更容易?你怎么看?
非常感谢您的帮助
这取决于计算。 Sybase 会更好地进行涉及分组数据的计算,但复杂的计算如分数等......在代码中会更快。此外,将业务逻辑与数据分开也是更好的做法。
IMO,我会将基于表单的变量(用户输入)作为参数传递到存储过程中,然后根据需要从 SP 中的表中获取其他变量。这避免了在打开表单时向客户端发送过多数据。这从 VBA 代码(或任何特定的前端语言)中抽象出逻辑,从而更容易最终移动到薄层。您还可以根据需要重新编译独立的存储过程,而不是部署另一个代码实例(通常要困难得多)。
如果有大量来自表单或本地表的参数,请考虑将它们作为 Sybase 中的结构化数据类型传递。 Sybase 中的过程缓存非常强大,初始编译后与任何其他过程语言一样快。
我使用一些 VBA 代码管理基于 Access 构建的应用程序,这些代码从以下位置获取数据:
- 用户通过 Access 表单输入
- Sybase 中的表(通过 Access 链接)
- Access 中的本地表
该应用程序用于进行一些财务计算。我们的计算需要很多条件,而且大多是一些复杂的计算(分数,乘法...)
我的问题是:在计算方面 VBA 比 Sybase 快吗? (请注意,当我们进行计算时,它需要我们的 3 种数据源)
我正在考虑将所有计算作为一些存储过程迁移到 Sybase,然后使用参数从 VBA 代码调用它,然后等待 Sybase 的输出。
PS:我问这个问题的另一个原因是因为我们认为将 Access 应用程序迁移到瘦客户端(可能基于 Web)是一个长期项目,如果所有计算都已经完成在 server/database 方面可能更容易?你怎么看?
非常感谢您的帮助
这取决于计算。 Sybase 会更好地进行涉及分组数据的计算,但复杂的计算如分数等......在代码中会更快。此外,将业务逻辑与数据分开也是更好的做法。
IMO,我会将基于表单的变量(用户输入)作为参数传递到存储过程中,然后根据需要从 SP 中的表中获取其他变量。这避免了在打开表单时向客户端发送过多数据。这从 VBA 代码(或任何特定的前端语言)中抽象出逻辑,从而更容易最终移动到薄层。您还可以根据需要重新编译独立的存储过程,而不是部署另一个代码实例(通常要困难得多)。
如果有大量来自表单或本地表的参数,请考虑将它们作为 Sybase 中的结构化数据类型传递。 Sybase 中的过程缓存非常强大,初始编译后与任何其他过程语言一样快。