使用Teradata进行Java Web应用程序的OLTP操作

时间:2014-04-09 14:41:19

标签: java performance hibernate teradata

是否建议将Teradata用于使用java Web应用程序的OLTP操作。 hibernate是使用Teradata的ORM层的好选择吗?请建议。

3 个答案:

答案 0 :(得分:2)

我不确定这个建议,但我已经在其中一个应用程序中工作,我们使用TD进行事务操作,在进行负载测试时,我们发现了一些性能问题。我们也参与了TD团队,并且知道参考完整性是TD上放大器操作的开销。 所以,我个人认为,如果你想在TD中实现OLTP操作的并发性,那么就会影响性能。

答案 1 :(得分:1)

老实说,Teradata不是我的OLTP应用程序的首选:它的强项是,恕我直言,在其他情况下。 这不是不可能做这样的应用程序,但它需要从一开始就最大限度地注意避免落入其他用户已经提到过的陷阱(阻塞,死锁等)

我也怀疑Hibernate的vanilla使用是否适合Teradata OLTP应用程序:你可能会发现你必须强制Hibernate以“非标准”的方式行事(但我承认我总是喜欢给出的解决方案)我对我的SQL完全控制。)

我们在类似Teradata OLTP的应用程序中使用了一些提示。

  1. 努力进行单一AMP查询(这可能会改变有关如何建模数据库的方法,有利于少数“强实体”)。
  2. 尽可能多地使用缓存:Teradata连接是一种宝贵的资源,您最好不要将其用于不需要实时的信息
  3. 尽可能多地分组数据:如果您可以使用单个查询撤消所有信息,请避免执行三个单独的查询
  4. 对于Java中的批量插入,将目标表的主索引列保持为数字(似乎分布在唯一数字主索引上更好,而不是在唯一字符串主索引上,这对锁定有影响)< / LI>
  5. 避免大数据集的“分页”界面(对于第一个“n”页面使用“top”,然后要求用户更好地限定他的搜索)
  6. 赞成“宏”而非“存储过程”
  7. 检查你的锁定要求:你可能最终会使用大量的“LOCK ROW FOR ACCESS”修饰符(打开“脏读”的可能性,但在某些情况下可能是必要的)

答案 2 :(得分:0)

我们的团队也在努力将teradata证明为OLTP。使用teradata for OLTP时需要处理很多事情,我们经常遇到阻塞,死锁和性能问题。我们需要更多地了解teradata锁定机制和并发访问。我们的应用程序也纯粹与TD休眠。 Teradata将支持muli statment概念,这意味着您可以在单个查询中执行多个插入/更新。如果你想进行休眠,那是不可能的。 Hibernate作为ORM有自己的优势。但是当它与Teradata一起时,我们需要退后一步思考。