gpt4 book ai didi

theory - 是否有用于数据库查询的规范形式?

转载 作者:行者123 更新时间:2023-12-02 15:43:01 25 4
gpt4 key购买 nike

假设我想制作一个“优化查询生成器”。基本上是一个 SQL 查询优化器,它比基于时间/空间限制可以放入 SQL 服务器的优化器要好得多。它将查询和数据库统计信息作为输入并生成为目标系统量身定制的 SQL 查询,该查询将快速优化为接近理想的计划。

需要支持多少 SQL? 是否有一个 SQL 子集足够灵活,可以轻松描述最有用的查询,但又比完整的 SQL 小得多,值得将其缩减为?此外,如果您不需要坚持“靠近机器”,是否有更好的方式来描述查询?

我考虑的不是用于处理现有 SQL 的程序,而是用于创建新 SQL 的工具。 实际上不需要 SQL 作为输入,只要输入语言能够描述查询的要求即可。

我想问题的另一种形式是:他们的 SQL 的任何部分是否只是为了性能而从不提高可读性/可理解性?


正如有人指出的那样,这样做需要“大量的产品特定知识”,而且(例如嵌套子查询与其他任何东西,应该使用什么样的索引,诸如此类)正是该工具的用途旨在封装以便用户不需要学习该知识。


注意:我对生成实际的查询计划不感兴趣,因为那是 DBMS 的工作,而且无论如何也无法通过 SQL 完成。我对一个系统感兴趣,该系统可以根据不需要为该 DBMS 调整的输入自动为给定的 DBMS 创建良好的 SQL。

最佳答案

听到您将 SQL 描述为“接近机器”,我感到很惊讶。 SQL 本身是声明性的而不是过程性的,关系数据库的有趣方面之一是实现者必须自由创新,因为 SQL 本身很少规定应该如何执行查询。

我认为就纯粹的实用性而言,很难改进 SQL。我并不是说它是完美的语言,但它是关系(甚至一些非关系)数据库的通用语言。

关于theory - 是否有用于数据库查询的规范形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/437723/

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