gpt4 book ai didi

database - 查询冗余和优化的地方

转载 作者:搜寻专家 更新时间:2023-10-30 20:56:36 25 4
gpt4 key购买 nike

实际上这是一个简单的问题,但我缺乏经验,也不知道如何对数据库系统进行内部优化(一般来说,但在我的具体情况下是 T-SQL)。

假设我有一个包含整数数据字段的数据库(用于简化 1-3):

table Data (D1, D2, D3)

我有一组匹配条件:

D1 > 3       D2 < 100    D3 all
D1 >= 50 D2 all D3 > 50
and so on...

执行查询的简单方法是 AND条件的每个表达式 OR每个条件表达式。但显然优化查询将是 D1 >= 50 and D2 < 100 and D3 > 50 (见编辑)

问题来了:数据库(在我的例子中是 T-SQL)是否能够优化我的原始查询?

如果不是:有人能给我指明正确的方向吗(我确定一定有某种算法可以解决这种情况,但我无法弄清楚)。

编辑:

显然优化假设是错误的:-D

D1 >= 50     D2 < 100    D3 all
D1 >= 50 D2 all D3 > 50
and so on...

这个可以优化
D1 >= 50 and D2 < 100 or D1 >= 50 and D3 > 50

D1 >= 50 and (D2 < 100 or D3 = 50 )

不知何故,我假设数据库应该如此智能(如果我考虑查询变得多么复杂,这对数据库来说一定是儿戏)。

问题应该是:它可以处理多少标准(X 数据字段和 Y 标准)。但这是我必须弄清楚的事情。当我们在这里收集一些日期时,我会报告(可能需要一段时间)。

最佳答案

由于不会有真正的答案,我会回答我自己的问题以提供反馈。
(如果有人愿意为此做出贡献,我仍然很高兴!)

最初的问题暗示了一个表格,其中包含数据和一组适用于该数据的标准。在进一步的分析中,我面临这样一个事实,即这个想法背后的整个概念是如此复杂,以至于我们不能依赖于将这个标准保存在一个单独的表中(原因:当你试图在没有清晰的编程库的情况下处理它时,动态 API 和纯粹的困惑).

因此它以动态 SQL 结束(而不是连接、存储过程等)。幸运的是,我可以通过之前的限制来减少查询的数据,这将减少大量的数据,这些数据将仍然需要根据条件进行查询。我什至看不到应用(例如)100 个标准和 10 个规则的问题。我仍然担心数据库在短时间内可以处理多少这样的查询(除了常见的工作负载)而不会爆发。

对于作为开发人员的我来说,这是一个非常巧妙的要求,需要“努力”应对。如果有更多要告诉我的,我会回来报告...

关于database - 查询冗余和优化的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18643463/

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