我看了一下这个问题:
表达式中的类型转换可能会影响查询计划选择中的“CardinalityEstimate”?
但这与整理有关,而不是与计算列有关。
我在下面的查询中使用了以下表定义,它给了我一个查询提示
表达式中的类型转换 (CONVERT(varchar(10),[t].[FLTCD_FLT_DATE],112)) 可能会影响查询计划选择中的“CardinalityEstimate”
请注意计算列 flightReference
CREATE TABLE [dbo].[repl_Transportation] (
[FLIGHT#] INT NOT NULL,
[FLTCD_FLT_DATE] DATETIME NULL,
[FLTCD_DEP_GATE] CHAR(3) NULL,
[FLTCD_ARR_GATE] CHAR(3) NULL,
[FLTCD_SEQUENCE] CHAR(1) NULL,
[DIRECTION] CHAR(1) NULL,
[PNR_NUMBERS] VARCHAR(70) NULL,
[HK] NUMERIC(3,0) NULL,
[Create_Date] DATETIME NOT NULL,
[Modify_Date] DATETIME NULL,
[flightReference] AS (substring(((CONVERT([varchar](10),[FLTCD_FLT_DATE],
(112))+[FLTCD_DEP_GATE])+[FLTCD_ARR_GATE])+[FLTCD_SEQUENCE],(3),(13))) PERSISTED,
CONSTRAINT [PK_FLIGHT#] PRIMARY KEY CLUSTERED ([FLIGHT#] asc))
IF OBJECT_ID('[dbo].[repl_Transportation_Details]') IS NOT NULL
DROP TABLE [dbo].[repl_Transportation_Details]
GO
CREATE TABLE [dbo].[repl_Transportation_Details] (
[FLT_LEG_ID] INT NOT NULL,
[FLIGHT#] INT NOT NULL,
[LEG_NO] TINYINT …
Run Code Online (Sandbox Code Playgroud) sql-server optimization sql-server-2016 computed-column cardinality-estimates