2013-08-26 43 views
2

我試圖尋找在SQL Server Management Studio中的alter table查詢SQL Server 2008年爲SQL Server修改表的查詢計劃2008

查詢計劃的變更查詢是一樣的東西:

alter table myTable add my_timestamp datetime not null default(getdate())

當我嘗試查看此查詢的「估計執行計劃」時,它顯示結果爲: 估計操作員成本爲0%。另外,當我嘗試查找查詢的「實際執行計劃」時,沒有顯示任何結果。我怎樣才能看到這個查詢的查詢計劃?

+0

爲什麼它喲需要查詢計劃?你打算改進它嗎? :) – Sergio

+0

你期望在執行計劃中看到什麼樣的行動?一個新的(至今爲空的)列被添加,並且沒有其他事情發生。或者我錯過了什麼? – cars10m

+0

當插入一個具有默認值的新列時,必須爲表中的每一行啓動一個更新查詢。我們可以期望在查詢計劃中看到確認這一點的內容。 –

回答

0

該計劃不適用於DDL語句,唉。我假設你想知道該語句是否將掃描或更新所有行,或者它是否只是元數據操作。找到的出路是:

  1. 閱讀文檔
  2. 測試它
0

顯示執行計劃僅對數據操縱語言(DML)語句有效。數據定義語言(DDL)語句不顯示執行計劃。

您的查詢是DDL。因此觀察到的行爲。

拉吉

+0

使用查詢計劃可輕鬆確定執行查詢時數據庫引擎執行的操作。是否有可能看到類似於我發佈的查詢的類似查詢這樣的事情?在某處我發現sqlserver 2012與sql server 2008相比,這樣的一個alter table查詢花費的時間要少很多。如果可以查看類似查詢計劃的內容,則區別可能很明顯。 –

+0

@AnkitKumar - 不同的原因[在此解釋](http://rusanu.com/2011/07/13/online-non-null-with-values-column-add-in-sql-server-11 /) –