其中一些可能没有什么意义,但是:
- Sql 代码解释或编译(和什么)?
- 连接翻译成什么 - 我的意思是一些循环或什么?
- 算法复杂性分析是否适用于查询,例如是否可以编写非常糟糕的选择 - 时间按选择的行数呈指数增长?如果是这样,如何分析查询?
其中一些可能没有什么意义,但是:
通过阅读 Itzik Ben-Gan 的一本书,你会得到很多这样的答案。他详细介绍了您提到的这些主题。
嗯......很笼统的问题,所以一些非常笼统的答案
1) Sql 代码解释或编译(和什么)?
SQL 代码被编译到执行计划中。
2)连接翻译成什么 - 我的意思是一些循环或什么?
取决于加入和你加入的表(据我所知)。SQL Server 有一些连接原语(散列连接、嵌套循环连接),根据您的 sql 代码中涉及的对象,查询优化器会尝试选择最佳选项。
3) 不是真的算法复杂性分析是否适用于查询,例如是否可以编写非常糟糕的选择 - 选择的行数在时间上呈指数增长?如果是这样,如何分析查询?
不太清楚,你的意思是什么。但是在某些情况下,您可以做一些非常糟糕的事情,例如使用
SELECT TOP 1 col FROM Table ORDER BY col DESC
在没有 col 索引的表上找到 col 的最大值而不是
SELECT MAX(col) FROM Table
您应该阅读 SQL Server 内部系列中的部分/全部书籍。它们非常出色,非常详细地涵盖了许多事物。