gpt4 book ai didi

sql - 为什么在 SQL 中动态选择列名和表名如此困难?

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

我认为必须有特定的设计原因才能编写如下查询:

select 
(select column_name
from information_schema
where column_name not like '%rate%'
and table_name = 'Fixed_Income')
from Fixed_Income

而是不得不求助于动态 SQL。

有谁知道这是什么原因?我尝试在谷歌上搜索它,但所有的点击都是寻求帮助解决问题的呼声——这意味着它是一个非常普遍的需求,并且没有得到很好的理解。

最佳答案

原因是查询优化器需要知道您在编译时引用的确切模式对象。它需要它们来优化查询。如果没有查询优化器可以使用这些信息,您将无法相信 RDBMS 会有多慢。

这有点像实践中静态类型与动态类型的性能差异:通常有一个非平凡的差异(我在这里只考虑主流语言)。编译器可以利用静态信息来生成出色的代码。

即使存在此功能,也将通过首先计算表名和列名,然后执行标准的“静态”查询计划来实现。

关于sql - 为什么在 SQL 中动态选择列名和表名如此困难?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10921158/

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