0

其中一些可能没有什么意义,但是:

  1. Sql 代码解释或编译(和什么)?
  2. 连接翻译成什么 - 我的意思是一些循环或什么?
  3. 算法复杂性分析是否适用于查询,例如是否可以编写非常糟糕的选择 - 时间按选择的行数呈指数增长?如果是这样,如何分析查询?
4

2 回答 2

1

通过阅读 Itzik Ben-Gan 的一本书,你会得到很多这样的答案。他详细介绍了您提到的这些主题。

http://tsql.solidq.com/books/index.htm

于 2012-05-31T14:58:00.127 回答
1

嗯......很笼统的问题,所以一些非常笼统的答案

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 内部系列中的部分/全部书籍。它们非常出色,非常详细地涵盖了许多事物。

于 2012-05-31T15:07:07.403 回答