Sql-Server
查詢計劃“基數估計”中的 警告
create table T(ID int identity primary key) insert into T default values insert into T default values go select cast(ID as varchar(10)) as ID from T where ID = 1
上面的查詢在查詢計劃中有警告。
<Warnings> <PlanAffectingConvert ConvertIssue="Cardinality Estimate" Expression="CONVERT(varchar(10),[xx].[dbo].[T].[ID],0)" /> </Warnings>
為什麼會有警告?
欄位列表中的演員如何影響基數估計?
此警告是 SQL Server 2012 的新警告。
從 SQL2012 中的新“表達式中的類型轉換…..”警告,到嘈雜到實際使用
我明白你的意思了。雖然我同意這在大多數情況下都是噪音,但我們修復它的優先級較低。如果我們得到更多回饋,我們會查看它。現在我已經按設計關閉了它。
Connect 已被終止,看起來原始問題並未轉移到 UserVoice。這是關於同一問題的不同 UserVoice 問題,類型轉換可能會影響 CardinalityEstimate - 在選定列上轉換/轉換
在有人提出更好的答案之前,我將提供無聊的答案。
為什麼會有警告?
我的猜測。
在 where 子句中使用的列上有一個強制轉換,它使該列的統計資訊變得有趣。數據類型的更改使統計數據變得不好,因此讓我們警告一下,以防欄位列表中的值最終可能會在某處使用。
欄位列表中的演員如何影響基數估計?
它不能,除非它是派生表中的欄位列表。