我们的应用程序使用hibernate3和SQL Server 2005服务器平台。 Hibernate配置为在启动时更新DB结构(hibernate.hbm2ddl.auto属性更新)。
自上周以来,一个问题引发了应用程序启动非常缓慢。另外,如果检查DB,则没有所有必要的索引应由hibernate创建。
如果要设置hibernate.hbm2ddl.auto来验证应用程序是否快速启动,但它不是一个解决方案,例如我们经常更改数据结构(应用程序正在开发中)。数据库的DBCC CHECKDB
没有警告。 hibernate也不会报告任何错误。
如果要恢复一周前的先前数据库版本,问题就会消失。应用程序启动很快,但我仍然没有看到所有必要的索引。此外,自输入该日期以来,我们还有很多新数据,并且不想放弃它。如何找到这种奇怪行为的原因?在DB中可能被破坏的内容不允许创建所有索引。
UPD。:将hibernate更新到更新的版本索引之后问题就消失了。但创业仍然很慢。在日志中我看到最慢的部分是由hibernate进行的表元数据验证。可能是什么原因?