将Teradata用于java web应用程序的OLTP操作

将Teradata用于java web应用程序的OLTP操作,java,performance,hibernate,teradata,Java,Performance,Hibernate,Teradata,建议将Is Teradata用于java web应用程序的OLTP操作中。hibernate是使用Teradata的ORM层的好选择吗?请提出建议。我不确定这个建议,但我曾在一个应用程序中工作过,在该应用程序中,我们使用TD进行事务性操作,在进行负载测试时,我们发现了一些性能问题。我们也让TD团队参与进来,并且知道引用完整性是TD上amp操作的开销。 因此,我个人认为,如果您想在TD中实现OLTP操作的并发性,那么就要牺牲性能。我们的团队也在努力证明teradata是OLTP。在使用terada

建议将Is Teradata用于java web应用程序的OLTP操作中。hibernate是使用Teradata的ORM层的好选择吗?请提出建议。

我不确定这个建议,但我曾在一个应用程序中工作过,在该应用程序中,我们使用TD进行事务性操作,在进行负载测试时,我们发现了一些性能问题。我们也让TD团队参与进来,并且知道引用完整性是TD上amp操作的开销。
因此,我个人认为,如果您想在TD中实现OLTP操作的并发性,那么就要牺牲性能。

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

老实说,Teradata并不是我的OLTP应用程序的第一选择:它的优点是,IMHO,在其他场景中。 并不是说不可能实现这样的应用程序,而是从一开始就需要最大限度地注意避免落入其他用户已经提到的陷阱(阻塞、死锁等)

我还怀疑Hibernate的普通用法是否适合Teradata OLTP应用程序:您可能会发现您必须强制Hibernate以“非标准”的方式运行(但我承认,我始终支持能够完全控制SQL的解决方案)

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

  • 争取使用单AMP查询(这可能会改变对数据库建模的方法,有利于少数“强实体”)
  • 尽可能多地使用缓存:Teradata连接是一种宝贵的资源,最好不要用于不需要实时的信息
  • 分组尽可能多的数据:如果可以使用一个查询返回所有信息,请避免执行三个单独的查询
  • 对于Java中的batch insert,将目标表的主索引列保持为数字(似乎在唯一的数字主索引上发布比在唯一的字符串主索引上发布更好,这会影响锁定)
  • 避免对大型数据集使用“分页”界面(在第一个“n”页中使用“top”,然后要求用户更好地限定其搜索)
  • 偏爱“宏”而不是“存储过程”
  • 检查您的锁定要求:您可能最终会使用大量“LOCK ROW FOR ACCESS”修饰符(打开了“脏读”的可能性,但在某些情况下可能是必要的)

  • 谢谢阿伦的解释。您能否举例说明您在以OLTP方式使用Teradata时为防止其死锁和阻塞而采取的任何具体措施。您完全正确,Insac,最后,在面对Teradata与OLTP应用程序之间的许多问题后,我们不得不向Oracle提出建议。