3

次のSQLクエリがあります。

SELECT TOP(100)
    VIEW_RAUMBUCHUNG_RAUM.RAUMID,
    VIEW_RAUMBUCHUNG.VON,
    VIEW_RAUMBUCHUNG.BIS,
    VIEW_RAUMBUCHUNG.RAUMBEZEICHNUNG,
    VIEW_RAUMBUCHUNG.THEMA,
    VIEW_RAUMBUCHUNG.V_EMAIL,
    VIEW_RAUMBUCHUNG.VERANSTALTER,
    VIEW_RAUMBUCHUNG_RAUM.COLOR,
    VIEW_RAUMBUCHUNG.RAUMID AS Expr1,
    VIEW_RAUMBUCHUNG_RAUM.BEZEICHNUNG
FROM VIEW_RAUMBUCHUNG
RIGHT OUTER JOIN VIEW_RAUMBUCHUNG_RAUM ON VIEW_RAUMBUCHUNG.RAUMID = VIEW_RAUMBUCHUNG_RAUM.RAUMID

これを改善する方法はありますか?VIEW_RAUMBUCHUNGには27000のエントリが含まれており、結果を最初の100レコードに制限しても、パフォーマンスは非常に遅くなります。または、SQL-Serverを最適化する方法はありますか?

2番目の問題は、27000エントリ全体を読み込もうとすると、20秒後にタイムアウトが発生しますが、IISのタイムアウトを120秒に設定したことです。それはなぜですか。タイムアウトを回避するにはどうすればよいですか。

前もって感謝します。

4

1 に答える 1

1
  1. 2つのテーブルのRaumIDフィールドにインデックスを作成します
  2. 2つのテーブルを結合する代わりに、ビューを作成します
  3. タイムアウトをより大きな値または0に設定します。これは、タイムアウトしないことを意味します
于 2012-07-10T13:17:25.057 に答える