我的意思是,在SQL查询方面,它们是在低级别编译还是解释?它是如何在内部工作的,它是一个解释或编译的SQL语句?
Mar*_*and 13
它通常像这样工作:
SQL String ---[Optimizer]---> Execution Plan ---[Execution]---> Result
我个人喜欢将优化器(查询规划器)视为与编译器非常相似的东西.它正在将SQL语句转换为更容易执行的语句.但是,它不是在芯片上可执行的.这种"编译"相当昂贵 - 就像编译C++代码一样.这是评估不同执行变体的部分; 连接顺序,要使用的索引,等等.通过使用绑定参数尽可能避免这种情况是一种很好的做法.
然后执行计划被数据库执行以供执行.但是,该战略已经确定.执行只是这样做.这部分是解释执行计划,而不是SQL.
毕竟,它在某种程度上类似于Java或.NET,其中编译将源代码转换为可以更容易解释的二进制形式.如果我们忽略这个参数的JIT,Java程序的执行就是解释这个元代码.
我用这种方式解释了在我的免费电子书"使用索引,卢克"中使用绑定参数(Oracle)性能的好处.
| 归档时间: |
|
| 查看次数: |
3195 次 |
| 最近记录: |