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 に答える