【发布时间】:2011-04-04 13:39:31
【问题描述】:
我们正在设计一个可以从 .Net 访问 DB2 数据库的系统。
似乎有 3 种方法可以做到这一点:
- 动态 SQL
- 存储过程
- CICS
使用动态 SQL 的一个好处是无需在团队中配备 Cobol 程序员。这是正确的吗?
你会推荐哪一个?还有其他选择吗?
【问题讨论】:
我们正在设计一个可以从 .Net 访问 DB2 数据库的系统。
似乎有 3 种方法可以做到这一点:
使用动态 SQL 的一个好处是无需在团队中配备 Cobol 程序员。这是正确的吗?
你会推荐哪一个?还有其他选择吗?
【问题讨论】:
我想不出你会设计一个带有 CICS 数据访问层的新 .NET 系统的任何理由。我肯定至少会使用 ADO.NET(我认为您所说的动态 SQL 是什么意思?)。 IBM 有一个可用于 DB2 的 ADO.NET 数据提供程序,并实现了 IDbConnection、IDbReader 等。
我相信NHibernate 也支持 DB2 UDP,所以您可能也想研究一下。
【讨论】:
.NET 可以像连接到其他数据库一样连接到 DB2。试试 DB2Connect。
【讨论】:
我倾向于使用存储过程,它应该比动态 SQL 更快、更易于维护,并且比 CICS/ 编码更少
动态 Sql:
优点:开发速度更快,熟悉 .net 开发人员
缺点: Sql 未在 DB 中集中维护。您无法查询 DB2 表的使用情况,查找数据库更新的位置。 Sql在使用时被分析,导致更高的处理
Sql 过程
优点:
- Faster SQL execution
- DB2 has control of SQL, you can query DB2 getting paths used by the
- SQL, Finds where tables / fields are used and updated
- SQL is analysed at "Bind" time rather than execution time
(normally when the program is compiled).
This leads to lower overheads and consistent execution times.
- Your SQL is vissible to DBA's, (Mainframe ?) developers
缺点:可能需要(大型机?)开发人员
Cics - 优点:
- All the advantages of SQL Procedures
- Can access VSAM Files
- Can buffer Common SQL in TS Queues, TD Queues, VSAM Files
缺点:额外的信息结构层(额外的开销,更多的错误) 更多编码
对于具有大型系统且使用量非常大的系统可能值得考虑。
最后一点,Java 有 SQLJ,在 DB2 中用 SQLJ 将 SQL 交给 DB2 来存储/维护。 SQLJ 具有与 Sql-Procedures 相同的优点。我不知道 .net 等价物。
【讨论】: