在 MVC 的 EDM 中使用外键会减慢执行速度吗?
Does use of foreign key in EDM of MVC slowers execution?
If EDM for 3 Tables is as shown in figer given below.
然后,
- 在 EDM 和数据库中使用这样的外键是好方法吗?
- 这样的数据库设计会降低执行速度吗?
- 哪种架构更适合使用外键或
不使用外键 ?
如果有人想要来自 table-3 的数据来自 TAble-1
那么可以通过两种方式完成。
我。
db.TAble_1.FirstOrDefault(m => m.TAble_1ID == 2).Table_2.FirstOrDefault().TAble_3;
二.
By Join in LINQ
- 那么哪个更快?
如果有人想要来自 table-1 的数据来自 TAble-3
那么可以通过两种方式完成。
我。
db.TAble_1.FirstOrDefault(m => m.TAble_3ID == 2).Table_2.TAble_3;
二.
By Join in LINQ
- 那么哪个更快?
提前谢谢大家。
不,基本上什么是 EDM 或者让我们以 Linq 为例 Sql,它只是将您的对象查询转换为 SQL,然后它会像内联一样触发查询 ,使用 SqlConnection 对象。
这个问题有两层:
- 数据库设计合理吗? - 因为这实际上会对性能产生影响。设计是查询的核心,它的精炼可以解决你的大部分性能问题。
- EDMX、Linq To Sql、Entity Framework 或其他一些 ORM(对象关系映射器):通常为什么要使用 ORM?由于他们有小查询并且他们对 SQL 服务器不是很精通,或者他们希望开发人员的学习曲线相对较钝,并且需要轻松且快速地纠正简单的小查询(有简单 Select 的存储过程没有意义。)因此它通过将对象查询 (LINQ) 转换为 Sql 语句来解决您的问题。
您的案例答案:
这取决于您对哪些查询使用相同的查询,您声明的查询如果有连接则不会有什么不同,(考虑到您的设计是正确的。)EDM 或上述任何内容都适用于任何此类查询,
但是是的,不要将它用于 "TOO BIG QUERIES" 或者不要用它替换 Stored Procedures 因为它会转换你的对象查询到 SQL 语句,将其发送到数据库服务器,Sql 服务器引擎解析查询,然后执行;因此,如果查询太大,那么在这种情况下,网络延迟、查询编译(&因为查询只是被编译,它不会编译执行计划。)而在存储过程的情况下,它已经存在并且查询 运行 相当快
有用的链接:
If EDM for 3 Tables is as shown in figer given below.
然后,
- 在 EDM 和数据库中使用这样的外键是好方法吗?
- 这样的数据库设计会降低执行速度吗?
- 哪种架构更适合使用外键或 不使用外键 ?
如果有人想要来自 table-3 的数据来自 TAble-1
那么可以通过两种方式完成。
我。
db.TAble_1.FirstOrDefault(m => m.TAble_1ID == 2).Table_2.FirstOrDefault().TAble_3;
二.
By Join in LINQ
- 那么哪个更快?
如果有人想要来自 table-1 的数据来自 TAble-3
那么可以通过两种方式完成。
我。
db.TAble_1.FirstOrDefault(m => m.TAble_3ID == 2).Table_2.TAble_3;
二.
By Join in LINQ
- 那么哪个更快?
提前谢谢大家。
不,基本上什么是 EDM 或者让我们以 Linq 为例 Sql,它只是将您的对象查询转换为 SQL,然后它会像内联一样触发查询 ,使用 SqlConnection 对象。
这个问题有两层:
- 数据库设计合理吗? - 因为这实际上会对性能产生影响。设计是查询的核心,它的精炼可以解决你的大部分性能问题。
- EDMX、Linq To Sql、Entity Framework 或其他一些 ORM(对象关系映射器):通常为什么要使用 ORM?由于他们有小查询并且他们对 SQL 服务器不是很精通,或者他们希望开发人员的学习曲线相对较钝,并且需要轻松且快速地纠正简单的小查询(有简单 Select 的存储过程没有意义。)因此它通过将对象查询 (LINQ) 转换为 Sql 语句来解决您的问题。
您的案例答案: 这取决于您对哪些查询使用相同的查询,您声明的查询如果有连接则不会有什么不同,(考虑到您的设计是正确的。)EDM 或上述任何内容都适用于任何此类查询,
但是是的,不要将它用于 "TOO BIG QUERIES" 或者不要用它替换 Stored Procedures 因为它会转换你的对象查询到 SQL 语句,将其发送到数据库服务器,Sql 服务器引擎解析查询,然后执行;因此,如果查询太大,那么在这种情况下,网络延迟、查询编译(&因为查询只是被编译,它不会编译执行计划。)而在存储过程的情况下,它已经存在并且查询 运行 相当快
有用的链接: