SQL Server execution plan with convert implicit

版权声明:複製請註明來源 https://blog.csdn.net/weixin_39392627/article/details/87917399

env: Windows Server 2016

         SQL Server 2016 SP2

最近幫忙看報表語法,發現執行計劃常出現以下警告訊息:

Type conversion in expression ([i].[Item]=CONVERT_IMPLICIT(nvarchar(64),[XXXXX].[XXXXX],0)) may affect "SeekPlan" in query plan choice, Type conversion in expression ([i].[Item]=CONVERT_IMPLICIT(nvarchar(32),[XXXXX].[XXXXX],0)) may affect "SeekPlan" in query plan choice

造成這個原因是等號兩邊資料型態不一致的關係。

比對語法使用的實體TABLE欄位資料型態都是一致的,

以這次的例子發生的原因是宣告的variable table造成:

DECLARE @TESTTB02 TABLE(Item NVARCHAR(64));
       
DECLARE @TESTTB02 TABLE(Item NVARCHAR(32));

解決方式是將NVARCHAR改為VARCHAR,隱含轉換的警告就消失了。

DECLARE @TESTTB02 TABLE(Item VARCHAR(64));
       
DECLARE @TESTTB02 TABLE(Item VARCHAR(32));

猜你喜欢

转载自blog.csdn.net/weixin_39392627/article/details/87917399