Entity framework 大容量数据库的ORM
我正在从事一个新的项目,该项目以数据为导向,意味着数据量非常大(每天都在增加)。因此,请建议我应该使用哪种类型的方法来实现desire功能,而不存在任何障碍Entity framework 大容量数据库的ORM,entity-framework,sql-server-2008,linq-to-sql,orm,normalization,Entity Framework,Sql Server 2008,Linq To Sql,Orm,Normalization,我正在从事一个新的项目,该项目以数据为导向,意味着数据量非常大(每天都在增加)。因此,请建议我应该使用哪种类型的方法来实现desire功能,而不存在任何障碍 数据库是否完全规范化 哪个ORM(linq2sql,实体框架)适合这个项目 我应该使用存储过程、db函数、触发器等吗 数据库是否规范化是您需要知道和回答的问题 至于ORM:它实际上取决于数据的类型及其结构 Linq到SQL是一个非常简单的ORM,它基本上只进行表到域对象的1:1映射。只要你不需要任何其他东西-那很好。LINQtoSQL不再
- 数据库是否完全规范化
- 哪个ORM(linq2sql,实体框架)适合这个项目
- 我应该使用存储过程、db函数、触发器等吗
至于数据库:存储的进程绝对值得研究,特别是当您需要将某些数据库处理封装到一个好的进程中,以便从代码中调用时。对于过多地使用触发器和函数,我会非常谨慎和防御性——它们有自己的位置,但不应该过度使用,因为它们确实会带来一些问题(主要是性能问题和“可发现性”问题)-许多开发人员不考虑可能存在的触发器,也不了解发生了什么事)。@Xulfee,这是一个相当广泛的问题,很大程度上取决于项目的性质。您引用的方法会影响整个体系结构的许多方面。例如: 数据库是否完全规范化?
数据库规范化通常有助于解决概念模型的复杂性问题。当适当(注意,我没有说“完全”)规范化时,您的模型应该是相当直接的,数据库的消费者(开发人员、BI团队、领域专家等)应该能够很好地了解使用数据库处理的业务问题。话虽如此,规范化可能会导致相当大的报告和分析问题。在针对大型、相当规范化的数据库编写报表查询时,可能会通过连接大量表而带来性能问题。进入。所以,对于你的问题:这要看情况。您的报告要求是什么?您平均需要支持多少个事务?您的概念模型有多复杂?您是否能够将数据库分解为关联的较小模型,而不是一个较大的模型 哪个ORM(linq2sql,实体框架)适合这个项目?
同样,ORM是一种工具。你必须问问自己,你想要完成的具体工作是什么?选择ORM(或者甚至首先使用ORM)是我建议您尽早做出的决定,因为它会影响从性能到开发团队凝聚力的所有方面。有很多很好的选择:
这个问题的中心是您的持久性存储以及您如何使用它(以及您想让DBA生气到什么程度)。存储过程(存储过程)的使用使您的dba能够以非常精细的级别提供安全性。此外,如果您正在使用的orm生成动态sql,您可能会受益于数据库缓存使用存储过程生成的查询的能力。DB功能可以是双面刀片。它们能够为您的模型添加功能和智能,同时允许您在性能方面获得相当大的成功(即表值UDF)。触发器有其自身的缺陷,应该谨慎使用,但这种讨论可能会涉及到很多问题。在这种情况下,我的底线是:您希望在数据库中支持多少逻辑,以及安全性和性能有多重要?您是否有一位合格的dba(不仅是一位知道如何编写查询的开发人员,而且是一位能够进行性能调优和数据建模的dba)?你的数据库有多大?您的数据有多复杂?在决定如何管理数据时,请考虑所有这些问题以及更多问题 总之,你