gpt4 book ai didi

sql-server - SQL Server不同设计查询性能

转载 作者:行者123 更新时间:2023-12-03 03:44:53 25 4
gpt4 key购买 nike

我一直在尝试检查不同类型的数据库设计的性能,但我不确定得到的结果是否正确。

我有两个数据库,具有不同的表,但旨在存储相同的信息。

  1. 在我的第一个设计中,我将所有字段放在一个表中。
  2. 在第二种设计中,我有多个表,并且希望使用联接来查找我的记录。

查看图片以获取更多详细信息:

enter image description here

当我对第一个数据库运行下面的查询时,它会在 0.03 秒内执行。

SELECT 
a.[idPerson], a.[Id], a.[Description], a.[LastName], a.[nme],
a.[Email], a.[Phone], a.[grp]
FROM
[Student] a
WHERE
a.[grp] = 'R3PU56'
AND a.[nme] = 'tZv5oxqSDEoXPnU'
AND a.[Email] = 'gyRpWWCopv'

当我对第二个数据库运行下面的查询时,它也在 0.03 秒内执行。

SELECT 
a.[Id], a.[grp], b.[Email], b.[Phone],
c.[Description], c.[LastName], c.[nme]
FROM
[Student2] a
JOIN
[AdvancedPerson2] AS b ON (a.[Id] = b.[Id])
JOIN
[Person2] AS c ON (a.[Id] = c.[Id])
WHERE
a.[grp] = 'R3PU56'
AND b.[Email] = 'gyRpWWCopv'
AND c.[nme] = 'tZv5oxqSDEoXPnU'

由于连接,我预计第二个查询将比第一个查询花费更多的时间。我的问题是,为什么两个查询花费相同的时间?如果它们相同,我应该使用哪种数据库结构?有人可能会说第二个结构很复杂,因为有多个表,但我不在乎。我正在使用 Telerik ORM,两者在 C# 代码中似乎相同。

最佳答案

你的第一个案例,非规范化表,理论上应该更快,但是数据库做得很好,使规范化版本变得相当快,并且鄙视连接的额外工作。如果您拥有大量数据,您可能只会注意到非规范化架构的好处。

关于使用哪种模式,我想我会选择第二个,但是没有 Advanced Person 2 表,为什么需要它?

关于sql-server - SQL Server不同设计查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32436458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com