1. 程式人生 > >SQL Server實際執行計劃COST"欺騙"案例

SQL Server實際執行計劃COST"欺騙"案例

但是需要再次注意,執行計劃在欺騙你,首先,它意味著只調用了UDF一次,其實不是這樣。其次,從成本(Cost)來看,你可能會認為0%是向下舍入影響,因為單次執行函式的開銷如此之小,以至於執行100,000次的成本也很小。但如果你檢查執行計劃的功能迭代器的屬性,你會發現所有的操作代價和子樹代價實際的估計為0,這是一個最糟糕的謊言。因為它可能不只是為了欺騙我們,而是SQL SERVER為了欺騙它自己。實際上是查詢優化器認為呼叫函式的成本為0,因此它生成的所有執行計劃都是基於呼叫UDF是免費的。其結果是即使呼叫標量UDF的代價非常昂貴,查詢優化器也不會考慮優化它。