Sql-Server

轉換可能會影響“CardinalityEstimate”CONCAT NVARCHAR 和 UNIQUEIDENTIFIER

  • September 13, 2021

所以我有一個只有一列 NVARCHAR(400) 的臨時表。

在這個臨時表中,我插入了來自各種來源的值。

其中之一是

INSERT INTO @permissions
SELECT Concat (N'resourcetype_', CONVERT(NVARCHAR(36), resourcetypeid))
FROM   roleresourcetypepermission
WHERE  roleid = @roleId OR @IsAdmin = 1

我嘗試使用 + 而不是 CONCAT,嘗試不顯式轉換它們,似乎沒有任何效果。 計劃警告

因為它們是兩種不同的數據類型,所以總是需要進行某種類型的轉換。您需要先保留已轉換的數據以消除該警告。

話雖如此,這是SELECT您查詢的一部分,實際上可能不會引起任何問題,因此可以忽略警告。(如果它是謂詞中的類型轉換,那將是另一回事。)

正如社區在評論中提到的那樣,除了警告本身之外,您是否還有其他問題尚不清楚。如果您遇到某種性能問題,請使用更多資訊和說明更新您的問題,例如包括慢查詢本身的執行計劃。

引用自:https://dba.stackexchange.com/questions/299491