在遗留世界中需要休眠 [已关闭]
我有几个关于休眠的问题。
在stackoverflow中的许多问题中,有几个人说休眠对于非常复杂的数据库来说不是一个好的选择。如果我们有非常复杂的数据库,休眠就不是正确的选择。它更适合绿地项目,但对于复杂的遗留数据库来说就不那么好了。
这是真的吗?
此外,休眠会生成查询。每个项目经理都希望有优化的查询(休眠不能比sql专家生成更多的优化查询!因此,对于大型项目,聘请sql专家不是问题。sql专家将优化查询(使用解释sql,使用连接...我的问题是,为什么一个庞大而昂贵的项目不关心sql优化?
(你会说你可以写HQL,但正如我在很多帖子中看到的那样,这些帖子解释说HQL不如sql强大,很多程序员都会头痛并经过几个小时的调整)(你喜欢你体内的所有器官理想地工作,不是吗?此外,第二级缓存有助于休眠,因为休眠知道生成大量查询而不是复杂的联接。我的问题是:一个复杂的数据库真的只被一个系统修改(例如网站)吗?如果我们谈论的是企业系统,数据库可以通过多个进程访问,共享不同的编程语言和平台。
因此,在这种情况下,第二级缓存没有多大帮助。休眠适合什么样的项目?它是否适用于没有人关心sql的后台项目?
当您的管理员说:请使用 memcached 进行缓存,并请使用此优化的查询而不是您的查询时,会发生什么情况?
如果您使用的是 oracle 数据库,orache 具有最先进的 sql 语法。他们在非常强大的语法上花费了大量的时间和金钱。如果不使用此语法,该怎么办?
该软件只编写一次(然后维护)并长时间使用。如果我是一家订购软件的公司,我会说:我会使用该软件几年,我喜欢快速,如果你花1个月的时间编写带有休眠的软件,我会再花一个月的时间购买使用示例IBATIS的软件,知道它会在几年内
更好地工作(当你买一辆车时,你对汽车经济感兴趣1kg-oil/km, 而不是制造商生产的汽车有多短和容易!因此,作为一名软件消费者,我对你的生产力不感兴趣,只是对软件的速度有多快感兴趣。当然,价格也是相关的,但是如果我们谈论价格,则有更复杂的数学。
当我们真的无法预测系统的某些部分时,我们可以称之为工程吗?
(如果电气工程师不能预测电流,他真的可以成为工程师吗)
请分享您的意见。
问候